5
나는이 코드를 우연히 발견하고 내 WinForm 응용 프로그램에서이를 구현하여 사용자가 기술에 능숙하지 않은 사용자를 돕도록했습니다.잃어버린 초점에 작업 표시 줄 플래시를 만드는 방법
불행히도, 아무 것도하지 않습니다. 어떤 오류나 어떤 것도 생성하지 않습니다. 단지 플래시로 만들지 않습니다.
아무도 통찰력을 제공 할 수 있습니까? Win 7 (x64) & Win XP (x86)에서 동일한 결과를 얻으려고 시도했습니다.
나는 이렇게 부른다. ->TaskbarFlasher.FlashWindow(this);
내 메인 양식에서.
[DllImport("user32.dll")]
private extern static bool FlashWindow(IntPtr hwnd, bool bInvert);
[DllImport("user32.dll")]
private extern static IntPtr GetForegroundWindow();
/// <summary>
/// Notifies the user that the application requests attention
/// by flashing the taskbar if the form is not the current window.
/// </summary>
/// <param name="myForm">The form in question.</param>
public static void FlashWindow(Form myForm)
{
// if the current foreground window isn't this window,
// flash this window in task bar once every 1 second
if (GetForegroundWindow() != myForm.Handle)
{
FlashWindow(myForm.Handle, true);
}
}
왜 당신이 이제까지 바이러스 스캐너를 자신의 메일 클라이언트에 응용 프로그램에서 멀리 클릭 ... 혹은 가난한 영혼에 깜박이는 죽음을 비명을 발휘할까요? : D –
사실, 이미 열려 있다는 것을 알기 위해 필요합니다. 아니면 DataEntry 응용 프로그램의 여러 인스턴스를 실행하려고 할 것입니다 ... –
그런 다음 정말로 원하는 것은 응용 프로그램의 단일 인스턴스를 보장하는 것입니다 이것은 다른 종류의 질문입니다. Windows UI 지침을 포커스 손실 알림으로 악용하는 대신에 제발, 당신이 계획하고있는 것을하지 마십시오. –