教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 利用Delphi全面控制Windows任务栏

利用Delphi全面控制Windows任务栏

上传者:网友
|
翻新时间:2023-06-04

利用Delphi全面控制Windows任务栏

利用Delphi全面控制Windows任务栏 利用Delphi全面控制Windows任务栏 信息技术论文 更新:2006-4-8 阅读: 利用Delphi全面控制Windows任务栏

(中国人民解放军合肥炮兵学院研究生系97级)

韩莹

(中保财险安徽省铜陵市分公司计财部) 

使用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 TForm1.HideOrShow(Sender:TObject);

begin

GetHandles;

if TCheckBox(Sender). Checked then

case TCheckBox(Sender). Tag of

0: ShowWindow(Wnd[0],SWHIDE);

1: ShowWindow(Wnd[1],SWHIDE);

2: ShowWindow(Wnd[2],SWHIDE);

3: ShowWindow(Wnd[3],SWHIDE);

4: ShowWindow(Wnd[4],SWHIDE);

end

else

case TCheckBox(Sender). Tag of

0: ShowWindow(Wnd[0],SWShow);

1: ShowWindow(Wnd[1],SWShow);

2: ShowWindow(Wnd[2],SWShow);

3: ShowWindow(Wnd[3],SWShow);

4: ShowWindow(Wnd[4],SWShow);

end;

end;

(6)FormClose事件代码如下://将Windows任务栏恢复到正常状态;

procedure TForm1.FormClose(Sender:TObject; var Action: TCloseAction);

var i:Integer;

begin

for i:=0 to 4 do

begin

EnableWindow(Wnd[i],True);

ShowWindow(Wnd[i],SWShow);

end;

end;

(7)按F9运行程序。以上程序在Delphi3.0/4.0、Windows95/98简体中文版环境下调试通过。 

(8)说明:本文所述方法同样适用于VB、VC、BC、C++Builder等编程工具,但应注意语法、 变量类型等不同要求。

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

流浪的二胡
流行音乐之我见
小镇的成长
社区植树
续写《孔乙己》
在社区活动站的日子
走过三米
我们的社区
社区活动站的“大管家”
住在A座的人
新苑社区法院宿舍环境报告
社区变了
音乐的魅力
续写《孔乙己》
咱说小康
员工辞职报告怎么写
入党申请书的写法格式
英文摘要的写作要求
离职报告怎么写
毕业生自荐材料如何写?
生产实习报告格式
浅谈先进事迹材料的写作
入团申请书的写法格式
掌握读后感的写作格式
体育比赛发言稿的写作
简历的其它注意事项
如何写好入党申请书?
自荐材料的基本结构
写好读后感活用“四字诀”
市场调研报告格式
专家预计未来五年绿色节能建筑将成主流
设计思维
创新住宅的尝试
中西方古建筑色彩浅析
建筑节能任重道远
浅谈建筑的艺术
有机建筑
我国空间结构建筑的发展趋势和变化
建筑业技术发展方向和重点
现代主义建筑
让艺术回到它的本位
罗曼建筑
大开间灵活性住宅初探
建筑市场与建筑质量
宫与殿的区别
《牧场之国》教学设计一
《乡下人家》教学设计一
《乡下人家》美文欣赏 故都的秋
《乡下人家》考点练兵 阅读篇
《乡下人家》写作指导
《牧场之国》随堂练习 提高篇
《乡下人家》整体阅读感知
《乡下人家》随堂练习 巩固篇
《牧场之国》随堂练习 巩固篇
《乡下人家》趣闻故事
《乡下人家》美文欣赏 等你,是一种风景
《牧场之国》老师语录
《牧场之国》重点问题探究
《乡下人家》教学设计二
《乡下人家》随堂练习 提高篇