- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用Delphi全面控制Windows任务栏_计算机论文
利用Delphi全面控制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;
(4)EnableOrDisable过程代码如下:
procedure TForm1.EnableOrDisable(Sender:TOBject)
begin
GetHandles
if TCheckBox(Sender). Checked then
case TCheckBox(Sender). Tag of
0: EnableWindow(Wnd[0], False)
1: EnableWindow(Wnd[1], False)
2: EnableWindow(Wnd[2], False)
3: EnableWindow(Wnd[3], False)
4: EnableWindow(Wnd[4], False)
end else
case TCheckBox(Sender). Tag of
0: EnableWindow(Wnd[0], True)
1: EnableWindow(Wnd[1], True)
2: EnableWindow(Wnd[2], True)
3: EnableWindow(Wnd[3], True)
4: EnableWindow(Wnd[4], True)
end
end
(5)HideOrShow过程代码如下:
procedure TForm
您可能关注的文档
- 典型红粘土与膨胀土的对比试验研究_工程建筑论文.doc
- 典型节能住宅采暖期能耗计算分析_工程建筑论文.doc
- 兼容串行通信与以太网通信的微机保护通信系统研究_通信学论文.doc
- 内与外、大与小、凹与凸——城市形态与规划随想_工程建筑论文.doc
- 内与外、大与小、凹与凸—一些城市与规划随想_工程建筑论文.doc
- 内容分析法应用于学科信息门户初探_通信学论文.doc
- 册亨县无坝渠首改建应重视的几个问题_工程建筑论文.doc
- 再冷式冰蓄冷系统节能效果的理论分析_工程建筑论文.doc
- 再论“空间句法”_工程建筑论文.doc
- 再论元组关系演算与SQL_计算机论文.doc
- 利用EPP并行口实坝PC机之间通信的CAN总线设计_计算机论文.doc
- 利用GPS(RTK)进行工程放样、界址点测量及其精度分析(三)_工程建筑论文.doc
- 利用GPS(RTK)进行工程放样、界址点测量及其精度分析(二)_工程建筑论文.doc
- 利用GPS卫星定位技术对疏浚工程船舶进行施工定位 _工程建筑论文.doc
- 利用IT网络建立的《地铁通号公司物资管理系统》初探_计算机网络论文.doc
- 利用JSR-223改进Spring框架的动态语言支持_计算机论文.doc
- 利用ObjectARX开发基于AutoCAD的法兰盘设计_计算机论文.doc
- 利用OpenGL实现内插算法可视化_计算机论文.doc
- 利用RCM2200实现以太网与异步串口的通信_计算机论文.doc
- 利用TDC组件实现对WEB页面的交互操作_计算机论文.doc
文档评论(0)