zoukankan      html  css  js  c++  java
  • Delphi下让窗口不显示在任务栏的另类方法

    刚才看到了这篇东西《使窗口不在任务栏上显示(利用ITaskbarList接口)》,作者用ITaskList接口实现了隐藏窗口在任务栏按钮的功能,想起我好多年以前做的程序也有这样的功能,但是绝不是用这些接口之类的做的,只是一个API函数就搞定了(好像是SetWindowLong()中传个什么参数吧,真的想不起来了),可惜程序实在是找不到了,当然ITaskbarList的功能要稍许比以前的那个API强一些。觉得挺好玩,就用Delphi重新实现了一遍,把代码贴出来,以便今后做什么程序的时候还可以用。

    uses
        ..., ActiveX;
        
    type
      ITaskbarList = interface(IUnknown)
        ['{56FDF344-FD6D-11d0-958A-006097C9A090}']
        function HrInit():HRESULT;stdcall;
        function AddTab(hwnd:HWND):HRESULT;stdcall;
        function DeleteTab(hwnd:HWND):HRESULT;stdcall;
        function ActivateTab(hwnd:HWND):HRESULT;stdcall;
        function SetActiveAlt(hwnd:HWND):HRESULT;stdcall;
      end;

    procedure TForm1.Button1Click(Sender: TObject);
    var
      hr:HResult;
      TaskbarList:ITaskbarList;
    const
      CLSID_TaskbarList:TGUID='{56FDF344-FD6D-11d0-958A-006097C9A090}';
      IID_ITaskbarList:TGUID='{602D4995-B13A-429b-A66E-1935E44F4317}';
    begin
      hr:=CoCreateInstance(CLSID_TaskbarList,Nil,CLSCTX_INPROC_SERVER,
        IID_ITaskbarList,TaskbarList);
      TaskbarList.HrInit();
      TaskbarList.DeleteTab(Application.Handle);
    end;

    这样就可以隐藏Application在Taskbar上的按钮了,但是由于Delphi自己在Taskbar的消息上做了很多处理,所以一旦把主窗口最小化,那个被删除的按钮就又出来了,不太理想。

  • 相关阅读:
    三台机子配置免密码登录
    cookie,session,token之间的联系与区别
    服务端技术栈
    ConcurrentHashMap
    Integer比较
    meidi
    MySQL字符串中数字排序的问题
    表格td、th强制换行
    mysql 清空表 Truncate及delete区别
    html锚点
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3171969.html
Copyright © 2011-2022 走看看