电竞比分网-中国电竞赛事及体育赛事平台

分享

Delphi 全面控制Windows任務(wù)欄

 aaie_ 2016-04-19

核心提示:使用Windows95/NT/98操作系統(tǒng)的用戶知道:Windows正常啟動(dòng)后,在電腦屏幕下方出現(xiàn)一塊 任務(wù)欄。

 

使用Windows95/NT/98操作系統(tǒng)的用戶知道:Windows正常啟動(dòng)后,在電腦屏幕下方出現(xiàn)一塊 任務(wù)欄。從系統(tǒng)功能角度而言,整個(gè)任務(wù)欄包括幾個(gè)不同的子區(qū)域,從左至右依次是:開始 按鈕、應(yīng)用程序切換區(qū)(Application Switch Bar)、任務(wù)欄通知區(qū)(Notification Area)以 及任務(wù)欄時(shí)鐘。與其它Windows應(yīng)用程序相同,任務(wù)欄程序(systray.exe)由幾個(gè)不同的窗體 組成,這些窗體是具有各自的窗口類名、顯示方式等信息。因此,只要得到有關(guān)窗口信息, 即可通過編程全面控制Windows任務(wù)欄的不同區(qū)域。

 

  1. 編程思想

 

  (1)任務(wù)欄窗體的窗口信息為:

 

 ?、偃蝿?wù)欄的窗口類名是:ShellTrayWnd。

 

 ?、陂_始按鈕的窗口類名是:Button。

 

 ?、蹜?yīng)用程序切換區(qū)的窗口類名是:ReBarWindow32。

 

  ④任務(wù)欄通知區(qū)的窗口類名是:TrayNotifyWnd。

 

 ?、萑蝿?wù)欄時(shí)鐘的窗口類名是:TrayClockWClass。

 

  (2)調(diào)用FindWindow函數(shù)得到任務(wù)欄的窗口句柄。

 

  (3)調(diào)用FindWindowEx函數(shù)得到任務(wù)欄各子區(qū)域的窗口句柄。

 

  (4)根據(jù)窗口句柄,調(diào)用ShowWindow函數(shù)控制任務(wù)欄各區(qū)域顯示或隱藏 (show/hide);調(diào)用En ableWindow函數(shù)控制任務(wù)欄各區(qū)域有效或無效(enabled/disabled)。

 

  2. 編程方法

 

  (1)在Delphi3.0 IDE中新建工程Project1, Project1中包含F(xiàn)orm1, 窗體如下圖所示:

 

  (2)定義窗口句柄數(shù)組:Wnd:array[0..4] of THandle;

 

  (3)GetHandles過程代碼如下:

 

 

procedure TForm1.GetHandles;

 

begin

 //得到Tray Bar的窗口句柄;

 Wnd[0]:=FindWindow(′ShellTrayWnd′,nil);

 //得到開始按鈕的窗口句柄;

 Wnd[1]:=FindWindow(′ShellTrayWnd′,nil);

 Wnd[1]:=FindWindowEx(Wnd[1],HWND(0),′Button′,nil); //得到應(yīng)用程序切換區(qū)的窗口句柄;

 Wnd[2]:=FindWindow(′ShellTrayWnd′,nil);

 Wnd[2]]:=FindWindowEx(Wnd[2],HWND(0),′ReBarWindow32′,nil);

 //得到任務(wù)欄通知區(qū)的窗口句柄;

 Wnd[3]:=FindWindow(′ShellTrayWnd′,nil);

 Wnd[3]:=FindWindowEx(Wnd[3],HWND(0),′TrayNotifyWnd′,nil);

 //得到任務(wù)欄時(shí)鐘的窗口句柄;

 Wnd[4]:=FindWindow(′ShellTrayWnd′,nil);

 Wnd[4]:=FindWindowEx(Wnd[4],HWND(0),′TrayNotifyWnd′,nil);

 Wnd[4]:=FindWindowEx(Wnd[4],HWND(0),′TrayCLockWClass′,nil);

end;

 

http://blog.csdn.net/yanjiaye520/article/details/6659536

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多