怎样把任务栏隐藏?? (100分)

老赵

Unregistered / Unconfirmed
GUEST, unregistred user!
不是他的自动隐藏,而是鼠标去了也没有任务栏,也就是彻底隐藏。也可以说是关闭?
或者说给用户的印象是任务栏没了!
只有退出程序,再把他回复出来。

var

wndHandle : THandle;

wndClass : array[0..50] of Char;

begin

StrPCopy(@wndClass[0], 'Shell_TrayWnd');

wndHandle := FindWindow(@wndClass[0], nil);

ShowWindow(wndHandle, SW_HIDE);

end;

Win2000下不管用!98没试。
 
showwindow(findwindow('Shell_TrayWnd',nil),sw_hide)
 
procedure SetTaskbar(ShowHide: Boolean); //False--隐藏
//True --恢复
const
SW_Info: array[Boolean] of Word = (SW_HIDE, SW_RESTORE);
var
wndHandle : THandle;
wndClass : array[0..50] of Char;
begin
StrPCopy(@wndClass[0], 'Shell_TrayWnd');
wndHandle := FindWindow(@wndClass[0], nil);
ShowWindow(wndHandle, SW_Info[ShowHide]);
end;
 
procedure TForm1.hideTaskbar; //隐藏
var
wndHandle : THandle;
wndClass : array[0..50] of Char;
tmp:integer;
begin
tmp := 0;
StrPCopy(@wndClass[0], 'Shell_TrayWnd');
wndHandle := FindWindow(@wndClass[0], nil);
ShowWindow(wndHandle, SW_HIDE);//SW_SHOW为show
SystemParametersInfo( SPI_SETFASTTASKSWITCH, 1, @tmp, 0);//hide alt-tab
End;
这样ok了,2000,9x可以
 
同一楼上
显示:showwindow(findwindow('Shell_TrayWnd',nil),sw_show)
 
showwindow(findwindow('Shell_TrayWnd',nil),sw_show)
2000下不行!!
 
showwindow(findwindow('Shell_TrayWnd',nil),sw_show)
是用来显示的,要隐藏把sw_show 改成sw_hide
2000下是绝对可以的
 
咦,我COPY你的代码,测试是成功的呀
procedure TForm1.Button1Click(Sender: TObject);
var

wndHandle : THandle;

wndClass : array[0..50] of Char;

begin

StrPCopy(@wndClass[0], 'Shell_TrayWnd');

wndHandle := FindWindow(@wndClass[0], nil);

ShowWindow(wndHandle, SW_HIDE);

end;


procedure TForm1.Button2Click(Sender: TObject);
begin
showwindow(findwindow('Shell_TrayWnd',nil),sw_show)

end;
 
真奇怪!
用button之类的就行,而在form1.onshow,form1.oncreate中就不行!
Why???
 
sendmessage() in onshow or oncreate
 
//Hide;
procedure TForm1.FormCreate(Sender: TObject);
var
wndhandle:Thandle;
wndclass:array[0..50] of char;
begin
strpcopy(@wndclass[0],'shell_TrayWnd');
wndhandle:=FindWindow(@Wndclass[0],nil);
ShowWindow(Wndhandle,SW_HIDE);
end;


//Show;
procedure TForm1.Button1Click(Sender: TObject);
var
WndHandle:THandle;
wndClass:Array[0..50] of Char;
begin
StrPCopy(@WndClass[0],'Shell_TrayWnd');
WndHandle:=FindWindow(@WndClass[0],nil);
ShowWindow(WndHandle,SW_RESTORE);
end;
 
发个消息让系统认为屏保在运行,:)
 
多人接受答案了。
 
顶部