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的消息上做了很多处理,所以一旦把主窗口最小化,那个被删除的按钮就又出来了,不太理想。

  • 相关阅读:
    dubbo-admin的安装使用
    eclipse生成mybatis的逆向工程-mybatis代码自动生成
    linux7下nenux3.14的maven私服搭建和配置使用
    工具记录及常用查询
    基于RabbitMQ的MQTT协议及应用
    springCloud 之 Eureka服务治理机制及代码运行
    python 的 *args 和 **kwargs
    python with语句
    Python 中下划线
    Python print格式化输出
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3171969.html
Copyright © 2011-2022 走看看