Delphi 全面控制Windows工作列

來源:互聯網
上載者:User

核心提示:使用Windows95/NT/98作業系統的使用者知道:Windows正常啟動後,在電腦螢幕下方出現一塊 工作列。

使用Windows95/NT/98作業系統的使用者知道:Windows正常啟動後,在電腦螢幕下方出現一塊 工作列。從系統功能角度而言,整個工作列包括幾個不同的子領域,從左至右依次是:開始 按鈕、應用程式切換區(Application Switch Bar)、工作列通知區(Notification Area)以 及工作列時鐘。與其它Windows應用程式相同,工作列程式(systray.exe)由幾個不同的表單 組成,這些表單是具有各自的視窗類別名、顯示方式等資訊。因此,只要得到有關視窗資訊, 即可通過編程全面控制Windows工作列的不同地區。

  1. 編程思想

  (1)工作列表單的視窗資訊為:

  ①工作列的視窗類別名是:ShellTrayWnd。

  ②開始按鈕的視窗類別名是:Button。

  ③應用程式切換區的視窗類別名是:ReBarWindow32。

  ④工作列通知區的視窗類別名是:TrayNotifyWnd。

  ⑤工作列時鐘的視窗類別名是:TrayClockWClass。

  (2)調用FindWindow函數得到工作列的視窗控制代碼。

  (3)調用FindWindowEx函數得到工作列各子領域的視窗控制代碼。

 

  (4)根據視窗控制代碼,調用ShowWindow函數控制工作列各地區顯示或隱藏 (show/hide);調用En ableWindow函數控制工作列各地區有效或無效(enabled/disabled)。

  2. 編程方法

  (1)在Delphi3.0 IDE中建立工程Project1, Project1中包含Form1, 表單如所示:

  (2)定義視窗控制代碼數組: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); //得到應用程式切換區的視窗控制代碼;

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

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

 //得到工作列通知區的視窗控制代碼;

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

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

 //得到工作列時鐘的視窗控制代碼;

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

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

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

end;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.