穿越叶萝莉月灵仙子:利用ITaskbarList接口隐藏任务栏图标

来源:百度文库 编辑:偶看新闻 时间:2024/04/30 12:15:42

利用ITaskbarList接口隐藏任务栏图标

分类: Delphi 2008-10-28 20:57 332人阅读 评论(0) 收藏 举报

其实只用一个API函数就能实现:ShowWindow(Application.Handle,SW_HIDE),今天看到另一种方法,利用ITaskbarList接口隐藏任务栏图标,缺点是ALT+TAB或最小化后又显示出来了,但这个方法可以引伸出其它应用。

 

  1. //uses ActiveX 
  2. type
  3.   ITaskbarList = interface(IUnknown)
  4.     ['{56FDF344-FD6D-11d0-958A-006097C9A090}']
  5.     procedure HrInit; safecall;
  6.     procedure AddTab(hWindow: HWND); safecall;
  7.     procedure DeleteTab(hWindow: HWND); safecall;
  8.     procedure ActivateTab(hWindow: HWND); safecall;
  9.     procedure SetActiveAlt(hWindow: HWND); safecall;
  10.   end;
  11. procedure TForm1.btn1Click(Sender: TObject);
  12. var
  13.   TaskbarList:ITaskbarList;
  14. const
  15.   CLSID_TaskbarList:TGUID='{56FDF344-FD6D-11d0-958A-006097C9A090}';
  16.   IID_ITaskbarList:TGUID='{602D4995-B13A-429b-A66E-1935E44F4317}';
  17. begin
  18.   CoCreateInstance(CLSID_TaskbarList,Nil,CLSCTX_INPROC_SERVER,IID_ITaskbarList,TaskbarList);
  19.   TaskbarList.HrInit();
  20.   TaskbarList.DeleteTab(Application.Handle);
  21. end;

还有一种方法:
ExtendedStyle := GetWindowLong (Application.Handle, GWL_EXSTYLE);
SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle OR WS_EX_TOOLWINDOW AND NOT WS_EX_APPWINDOW);