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

其实只用一个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);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值