熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

利用Delphi全面控制Windows任務欄[1]

2013-11-11 21:05:42  來源: Delphi編程 
    使用Windows/NT/操作系統的用戶知道Windows正常啟動後在電腦屏幕下方出現一塊 任務欄從系統功能角度而言整個任務欄包括幾個不同的子區域從左至右依次是開始 按鈕應用程序切換區(Application Switch Bar)任務欄通知區(Notification Area)以 及任務欄時鐘與其它Windows應用程序相同任務欄程序(systrayexe)由幾個不同的窗體 組成這些窗體是具有各自的窗口類名顯示方式等信息因此只要得到有關窗口信息 即可通過編程全面控制Windows任務欄的不同區域

   編程思想

  ()任務欄窗體的窗口信息為

  ①任務欄的窗口類名是ShellTrayWnd

  ②開始按鈕的窗口類名是Button

  ③應用程序切換區的窗口類名是ReBarWindow

  ④任務欄通知區的窗口類名是TrayNotifyWnd

  ⑤任務欄時鐘的窗口類名是TrayClockWClass

  ()調用FindWindow函數得到任務欄的窗口句柄

  ()調用FindWindowEx函數得到任務欄各子區域的窗口句柄
 
  ()根據窗口句柄調用ShowWindow函數控制任務欄各區域顯示或隱藏 (show/hide)調用En ableWindow函數控制任務欄各區域有效或無效(enabled/disabled)

   編程方法

  ()在Delphi IDE中新建工程Project Project中包含Form 窗體如下圖所示

  ()定義窗口句柄數組Wnd:array[] of THandle;

  ()GetHandles過程代碼如下

procedure TFormGetHandles;
begin
 //得到Tray Bar的窗口句柄
 Wnd[]:=FindWindow(′ShellTrayWnd′nil);
 //得到開始按鈕的窗口句柄
 Wnd[]:=FindWindow(′ShellTrayWnd′nil);
 Wnd[]:=FindWindowEx(Wnd[HWND()′Button′nil); //得到應用程序切換區的窗口句柄
 Wnd[]:=FindWindow(′ShellTrayWnd′nil);
 Wnd[]]:=FindWindowEx(Wnd[HWND()′ReBarWindownil);
 //得到任務欄通知區的窗口句柄
 Wnd[]:=FindWindow(′ShellTrayWnd′nil);
 Wnd[]:=FindWindowEx(Wnd[HWND()′TrayNotifyWnd′nil);
 //得到任務欄時鐘的窗口句柄
 Wnd[]:=FindWindow(′ShellTrayWnd′nil);
 Wnd[]:=FindWindowEx(Wnd[HWND()′TrayNotifyWnd′nil);
 Wnd[]:=FindWindowEx(Wnd[HWND()′TrayCLockWClass′nil);
end
  

[]  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/8478.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.