var wndhandle:thandle;
wndclass:array[0..50]of char;
请问下面三条语句前两条的具体含义,在线等候,请各位一一道来
还有
@的具体含义:取地址? 为什么要定义数组[0..50]?为什么字符串是'shell_traywnd' strpcopy(@wndclass[0],'shell_traywnd');
wndhandle:=findwindow(@wndclass[0],nil);
showwindow(wndhandle,sw_hide);
wndclass:array[0..50]of char;
请问下面三条语句前两条的具体含义,在线等候,请各位一一道来
还有
@的具体含义:取地址? 为什么要定义数组[0..50]?为什么字符串是'shell_traywnd' strpcopy(@wndclass[0],'shell_traywnd');
wndhandle:=findwindow(@wndclass[0],nil);
showwindow(wndhandle,sw_hide);
第二条语句findwindow的含义就是查找当前系统中窗口类名为'shell_traywnd'(用到了吧)的窗口,找到以后把句柄返回给wndhandle
showwindow(Findwindow('shell_traywnd',nil),sw_hide)就可以了啊
(2)strpcopy是将'Shell_TranWnd'字符串赋值到wndclass字符数组中,因为下面FindWindow函数需要一个字符串指针来获得需要查找的窗口的Name属性;还有另外一种方法,参加例子。
(3)@用来获取数组第一个元素的地址;
(4)ShowWindow是用来按照参数显示指定的窗口。
(5)可以仅通过按下Alt+Tab来切换应用程序就可以迫使隐藏的任务栏显示,而无需调用恢复函数。例子:
//---------------------------------------------------------------------------
// 隐藏任务栏procedure HideTaskBar;
var
TaskBarHandle: THandle;
TaskBarClsName: PChar;
begin
TaskBarClsName := PChar('Shell_TrayWnd'); // Task Bar fixed class name;
TaskBarHandle := FindWindow(TaskBarClsName, nil);
SetWindowPos(TaskBarHandle, 0, 0, 0, 0, 0, SWP_HIDEWINDOW);
end;//---------------------------------------------------------------------------
// 显示被隐藏的任务栏
procedure RestoreTaskBar;
var
TaskBarHandle: THandle;
TaskBarClsName: PChar;begin
TaskBarClsName := PChar('Shell_TrayWnd'); // Task Bar fixed class name;
TaskBarHandle := FindWindow(TaskBarClsName, nil);
SetWindowPos(TaskBarHandle, 0, 0, 0, 0, 0, SWP_SHOWWINDOW);
end;