Delphi 操作“任务栏”

来源:互联网 发布:世界各国gdp数据 编辑:程序博客网 时间:2024/06/10 11:05

Delphi 操作“任务栏”

    一、windows任务栏常规
    1、通常编译好的文件,执行后在任务栏中,只显示一个主窗口的“标题框(带图标)”。不管你进入那一个子窗口,只显示主窗口的“标题框”
    2、程序通过进入托盘,只一托盘区显示一个图标,任务栏中,就隐藏了。
    3、如果想一开始就取消任务栏主窗口的“标题框” ,e 可在窗口的Creat事件中,加入代码:
   (1)Delphi7
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);  //隐藏
// SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_APPWINDOW);   //显示

SetWindowLong(Self.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
SetWindowLong(self.Handle,GWL_EXSTYLE,WS_EX_APPWINDOW);

   (2)在程序的.dpr文件中create窗体前加入:
Application.ShowMainForm:=false; // 隐藏窗口
// Application.ShowMainForm:=true;  // 显示窗口

   (3)修改工程文件DPR中的“Application.MainFormOnTaskbar := True;”为“Application.MainFormOnTaskbar := False;”
    在主窗体的 OnShow 事件中写下:ShowWindow(Application.Handle, SW_HIDE);


    二、Windows任务栏的操作
    1、隐藏Windows任务栏
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);            //隐藏Windows任务栏
end;

    2、隐藏Windows任务栏
procedure Tform1.Button2Click(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_Show);            //显示Windows任务栏
end;

0 0