📄 利用delphi或vb全面控制windows任务栏.txt
字号:
利用Delphi或VB全面控制Windows任务栏 (2001年4月5日)
网友更新 分类:系统 作者:张建军 推荐:erudition 阅读次数:253
(http://www.codesky.net)
--------------------------------------------------------------------------------
使用Windows95/NT/98操作系统的用户知道:Windows正常启动后,在电脑屏幕下方出现一块任务栏(Tray Bar)。从系统功能角度而言,整个任务栏包括几个不同的子区域,从左至右依次是:开始(Start)按钮、应用程序切换区(Application Switch Bar)、任务栏通知区(Notification Area)以及任务栏时钟。与其它Windows应用程序相同,任务栏程序(systray.exe)由几个不同的窗体组成,这些窗体具有各自的窗口类名、显示方式等信息。因此,只要得到有关窗口信息,即可通过编程全面控制Windows任务栏的不同区域。
---- 一、 编程思想
---- 1、 任务栏各窗体的窗口信息为:
Tray Bar的窗口类名是:Shell_TrayWnd
开始按钮的窗口类名是:Button
应用程序切换区的窗口类名是:ReBarWindow32
任务栏通知区的窗口类名是:TrayNotifyWnd
任务栏时钟的窗口类名是:TrayClockWClass
---- 2、 调用FindWindow函数得到任务栏的窗口句柄。
---- 3、 调用FindWindowEx函数得到任务栏各子区域的窗口句柄。
---- 4、根据窗口句柄,调用ShowWindow函数控制任务栏各区域显示或隐藏(show/hide);调用EnableWindow函数控制任务栏各区域有效或无效(enabled/disabled)。
---- 二、 编程方法
---- ㈠利用Delphi编程
---- 1、 在Delphi3.0 IDE 中新建工程Project1,Project1中包含Form1,窗体如下图所示:
---- 2、 定义窗口句柄数组:
var Wnd : array [0..4] of THandle;
---- 3、GetHandles过程代码如下:
... ...
---- 4、 EnableOrDisable过程代码如下:
... ...
---- 5、HideOrShow过程代码如下:
... ...
---- 6、 FormClose事件代码如下://将Windows任务栏恢复到正常状态;
... ...
---- 7、按F9运行程序。以上程序在Delphi3.0/4.0、Windows95/98简体中文版环境下调试通过。
---- ㈡利用VB编程
---- 1、在VB5.0 IDE中新建工程1,工程1中包含Form1,窗体如上图所示。
---- 2、在VB菜单栏上选择:“工程”——“添加模块”——“模块”——“打开”,在工程1中添加模块Moudle1。
---- 3、在Moudle1中声明Windows API函数:
... ...
---- 4、“通用”——“声明”代码如下:
Dim Handle(5) As Long
---- 5、 GetHandles过程代码如下:
... ...
---- 6、Check1_Click事件代码如下:
... ...
---- 7、Check2_Click事件代码如下:
... ...
---- 8、Form_Unload事件代码如下:
... ...
---- 9、按F5运行程序。以上程序在VB5.0/6.0、Windows95/98简体中文版环境下调试通过。
---- 说明:本文所述方法同样适用于C++Builder等编程工具,但应注意语法、变量类型等不同要求。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -