2016-01-24 59 views
3

使用Delphi 10西雅圖,我嘗試使用此代碼,使應用程序的Windows任務欄按鈕閃爍:Flash應用程序的任務欄按鈕?

procedure TForm1.Button1Click(Sender: TObject); 
begin 
    FlashWindow(Application.Handle, True); 
end; 

或:

procedure TForm1.Button1Click(Sender: TObject); 
var 
    Flash: FLASHWINFO; 
begin 
    FillChar(Flash, SizeOf(Flash), 0); 
    Flash.cbSize := SizeOf(Flash); 
    Flash.hwnd := Application.Handle; 
    Flash.dwFlags := FLASHW_ALL or FLASHW_TIMER; 
    Flash.dwTimeout := 1000; 
    FlashWindowEx(Flash); 
end; 

或:

procedure TForm1.Button1Click(Sender: TObject); 
var 
    Flash: FLASHWINFO; 
begin 
    FillChar(Flash, SizeOf(Flash), 0); 
    Flash.cbSize := SizeOf(Flash); 
    Flash.hwnd := Application.Handle; 
    Flash.uCount := 5; 
    Flash.dwTimeOut := 2000; 
    Flash.dwFlags := FLASHW_ALL; 
    FlashWindowEx(Flash); 
end; 

OS: Windows 7 x64 SP1

不幸的是,這不起作用:任務欄b utton根本不閃光。

我該如何做這項工作?

回答

6

在你.dpr文件,你會看到下面這行:

Application.MainFormOnTaskBar := True; 

這意味着,與任務欄按鈕相關的窗口是主要形式。而不是Application對象。所以在你的代碼中,通過Application.MainFormHandleFlashWindowFlashWindowEx

+0

大衛,非常感謝!也感謝解釋!你知道是否有任何用戶界面準則閃爍應該是多快? – user1580348

+0

不確定閃爍頻率。我會看看是否可以找到ms應用使用的速率。 1s頻率感覺很好。 –

相關問題