隐藏,出现!
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;

解决方案 »

  1.   


    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;
      

  2.   

    发现了吗?
    当你手动改变任务条的状态,重新启动时,系统能记住这个状态,这说明关于它的设置很有可能在注册表里,你可以比较一下手动修改任务条前后的注册表的内容,也可以用regmon等注册表监视器监视一下手动修改任务条时注册表有哪些变化。具体结果我也不愿意去试,不过如果你试出来了的话,别记了告诉我一下(e-mail:[email protected])。
    另外,修改注册表后别记了用SystemParametersInfo使其马上生效。
      

  3.   

    有个函数SHAppBarMessage(ABM_ACTIVATE, pabd);ABM_ACTIVATE
    ABM_GETAUTOHIDEBAR
    ABM_GETSTATE
    ABM_GETTASKBARPOS
    ABM_NEW
    ABM_QUERYPOS
    ABM_REMOVE
    ABM_SETAUTOHIDEBAR
    ABM_SETPOS
    ABM_WINDOWPOSCHANGED你试试吧,我没能解决这个问题,把你的答案告诉我好吗?