利用Delphi全面控制Windows任务栏-Delphi-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝27
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:153回复:0

利用Delphi全面控制Windows任务栏

楼主#
更多 发布于:2016-06-11 14:07

运用Delphi全部操控Windows任务栏,Delphi教程,Delphi事例,Delphi实例
运用Windows95/NT/98操作体系的消费者知道:Windows
变形发动后,在电脑屏幕下方显现一块
任务栏 。从体系
性能视点而言,全部
任务栏包含几个不一样的子区域,从左至右
依次是:开端 按钮、
运用程序切换区(Application Switch Bar)、
任务栏
通知区(Notification Area)以 及
任务栏时钟 。与其它Windows
运用程序
相同,
任务栏程序(systray.exe)由几个不一样的窗体 构成,这些窗体是
存在各自的窗口类名、显现
形式等信息 。
因而,
只有得到有关窗口信息, 即可经过编程全部操作Windows
任务栏的不一样区域 。
1. 编程
思想
root是什么意思 root权限获取站长须知的查找引擎优化经历汇总
电子商务网站成功的四大特色实例解说巧用延时自拍:奇妙的设想
(1)
任务栏窗体的窗口信息为:
写实拍摄必备 街头实战进阶的4个窍门ipad3怎样越狱,iPad3完美越狱教程
让光线更多样化 室内人像布光运用窍门7天拍摄入门 拍出好相片的9个基本要素

任务栏的窗口类名是: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,True);
ShowWindow(Wnd,SWShow);
end;
end;
(7)按F9运行程序 。以上程序在Delphi3.0/4.0、Windows95/98简体中文版环境下调试经过 。 
(8)
注明:这篇文章所述
进程相同
实用于VB、VC、BC、C++Builder等编程东西,但应
留心语法、 变量类型等不一样请求 。
运用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,True);
ShowWindow(Wnd,SWShow);
end;
end;
(7)按F9运行程序 。以上程序在Delphi3.0/4.0、Windows95/98简体中文版环境下调试经过 。 
(8)
注明:这篇文章所述
进程相同
实用于VB、VC、BC、C++Builder等编程东西,但应
留心语法、 变量类型等不一样请求 。







[font=Tahoma  ][font=Tahoma  ][font=Tahoma  ]

优质IT资源分享社区为你提供此文。
本站有大量优质Delphi教程视频,资料等资源,包含Delphi基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看。
Delphi教程视频
优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客