隐藏,出现!
procedure TForm1.Button4Click(Sender: TObject);
var Hwnd:THandle;
begin
hWnd := FindWindow('Shell_TrayWnd', '');
if hWnd <> 0 then ShowWindow(hWnd, SW_HIDE);
end;
procedure TForm1.Button5Click(Sender: TObject);
var Hwnd:THandle;
begin
hWnd := FindWindow('Shell_TrayWnd', '');
if hWnd <> 0 then ShowWindow(hWnd, SW_ShowNormal);
end;
procedure TForm1.Button4Click(Sender: TObject);
var Hwnd:THandle;
begin
hWnd := FindWindow('Shell_TrayWnd', '');
if hWnd <> 0 then ShowWindow(hWnd, SW_HIDE);
end;
procedure TForm1.Button5Click(Sender: TObject);
var Hwnd:THandle;
begin
hWnd := FindWindow('Shell_TrayWnd', '');
if hWnd <> 0 then ShowWindow(hWnd, SW_ShowNormal);
end;
procedure TForm1.WINDOWS1Click(Sender: TObject);
var
wndHandle : THandle;
wndClass : array[0..50] of Char;
begin
if windows1.Checked=false then{隐藏}
begin
form1.Height:=800;
StrPCopy(@wndClass[0], 'Shell_TrayWnd');
wndHandle := FindWindow(@wndClass[0], nil);
ShowWindow(wndHandle, SW_HIDE);
windows1.Checked:=true;
end
else
begin
if windows1.Checked=true then{显示}
begin
StrPCopy(@wndClass[0], 'Shell_TrayWnd');
wndHandle := FindWindow(@wndClass[0], nil);
ShowWindow(wndHandle, SW_RESTORE);
end;
windows1.Checked:=false;
end
end;
当你手动改变任务条的状态,重新启动时,系统能记住这个状态,这说明关于它的设置很有可能在注册表里,你可以比较一下手动修改任务条前后的注册表的内容,也可以用regmon等注册表监视器监视一下手动修改任务条时注册表有哪些变化。具体结果我也不愿意去试,不过如果你试出来了的话,别记了告诉我一下(e-mail:[email protected])。
另外,修改注册表后别记了用SystemParametersInfo使其马上生效。
ABM_GETAUTOHIDEBAR
ABM_GETSTATE
ABM_GETTASKBARPOS
ABM_NEW
ABM_QUERYPOS
ABM_REMOVE
ABM_SETAUTOHIDEBAR
ABM_SETPOS
ABM_WINDOWPOSCHANGED你试试吧,我没能解决这个问题,把你的答案告诉我好吗?