私はマシンを制御するアプリケーションを開発しています。
マシンからエラーが発生した場合、ユーザーはそれに直接気付くことができますが、タスクバーのトレイを点滅させるという方法があります。マシンがエラーをクリアすると、トレイが点滅を停止するはずです。FlashWindowEx FLASHW_STOPはまだタスクバーの色を維持します
FlashWindowEx関数を使用すると少し煩わしさがあります。ウィンドウの点滅をクリアすると、(私の場合winXPでは)オレンジ(点滅しない)のままです。私の場合は
[Flags]
public enum FlashMode {
///
/// Stop flashing. The system restores the window to its original state.
///
FLASHW_STOP = 0,
///
/// Flash the window caption.
///
FLASHW_CAPTION = 1,
///
/// Flash the taskbar button.
///
FLASHW_TRAY = 2,
///
/// Flash both the window caption and taskbar button.
/// This is equivalent to setting the FLASHW_CAPTION | FLASHW_TRAY flags.
///
FLASHW_ALL = 3,
///
/// Flash continuously, until the FLASHW_STOP flag is set.
///
FLASHW_TIMER = 4,
///
/// Flash continuously until the window comes to the foreground.
///
FLASHW_TIMERNOFG = 12
}
public static bool FlashWindowEx(IntPtr hWnd, FlashMode fm) {
FLASHWINFO fInfo = new FLASHWINFO();
fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo));
fInfo.hwnd = hWnd;
fInfo.dwFlags = (UInt32)fm;
fInfo.uCount = UInt32.MaxValue;
fInfo.dwTimeout = 0;
return FlashWindowEx(ref fInfo);
}
[StructLayout(LayoutKind.Sequential)]
public struct FLASHWINFO {
public UInt32 cbSize;
public IntPtr hwnd;
public UInt32 dwFlags;
public UInt32 uCount;
public UInt32 dwTimeout;
}
私は点滅を停止するように点滅してFLASHW_STOP開始するFLASHW_TRAYを使用しています。
私は何か間違ったことをしていますか、これはWinXPの既知のバグですか?修正がありますか?
答えにいくつかの説明を追加してください。 – Sandeep