Delphi编程中控制Windows任务栏

Author: 季昭君 Date: 2000年 第7期

  在Windows 9X中屏幕最下方是任务栏,用户可以对其进行一些设置。如你在任务栏上单击鼠标右键选择属性之后,在弹出的对话框中你就可以进行设置了,那么在我们所编的程序中如何来控制任务栏呢?方法便是:调用API函数。
  说明:在以下程序中使用FindWindow和SetWindowPos 这两个API函数来实现在程序中控制Windows任务栏的隐藏及显示,函数的声明内容都在Windows.pas文件中。
  首先,新建工程,在默认的Form1上放上一个Button1(其caption属性为隐藏任务栏)和Button2(其caption属性为显示任务栏),其他属性保持不变,然后输入以下程序代码:
  unit STARTBAR;
  interface
  uses Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;
  type TForm1 = class(TForm)
  Button1: TButton;
  Button2: TButton;
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
  procedure FormCreate(Sender: TObject);
  private { Private declarations }
  public { Public declarations }
  end;
  var Form1: TForm1; RET:HWND; //声明全局变量
  implementation{SR *.DFM}
  procedure TForm1.FormCreate(Sender: TObject);
  begin
  RET:=FINDWINDOW(′Shell_traywnd′,′′);
  end;
  procedure TForm1.Button1Click(Sender: TObject);  //隐藏任务栏
  begin
  SETWINDOWPOS(RET,0,0,0,0,0,SWP_HIDEWINDOW);
  end;
  procedure TForm1.Button2Click(Sender: TObject); //显示任务栏
  begin
  SETWINDOWPOS(RET,0,0,0,0,0,SWP_SHOWWINDOW);
  end;
  end.
  现在你可以运行一下(按F9),当你按BUTTON1时任务栏就被隐藏了,再按一下BUTTON2就可再次显示任务栏。
  注:以上程序在中文Windows 98,Delphi4.0 C/S版中调试通过。