在实际应用中遇到类似下列需要:

隐藏windows窗口,在windows任务栏中窗口不可见,但应用程序在后台运行。

windows应用程序的窗口默认会在任务栏中添加一个可见的窗口项,方便用户操作和在不同应用程序中切换。

考虑到windows操作系统是基于shell的,查找shell的接口资料会发现 ITaskbarList interface 。ITaskbarList提供了AddTabDeleteTab函数,用于向任务栏中添加删除窗口项。

第一种方法就是使用ITaskbarList接口,在程序启动时将窗口项从任务栏中删除。

代码如下:

 1  1 ITaskbarList* pTaskbarList;
 2  2 hr = CoCreateInstance( CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER,
 3  3     IID_ITaskbarList, (void**)&pTaskbarList );
 4  4
 5  5 if(SUCCEEDED(hr))
 6  6 {
 7  7     pTaskbarList->HrInit();
 8  8     if(bShow)
 9  9         pTaskbarList->AddTab(hWnd);
10 10     else
11 11         pTaskbarList->DeleteTab(hWnd);
12 12
13 13     pTaskbarList->Release();
14 14 }

从另一个角度考虑,windows窗口是否有类似的属性,用于指定窗口样式,不在任务栏中显示呢?

下面可以看看Extended Window Styles的资料,其中有这样的扩展属性:WS_EX_TOOLWINDOW。指定该属性表示窗口将会作为浮动工具栏使用,其窗口不会再任务栏中显示,并且有特殊的显示处理逻辑,这也恰好符合需要。

那么使用这种方式就需要调用CreateWindowEx函数。

另外,如果你希望窗口完全不可见,可以在创建窗口的时候指定窗口属性为不可见,这样就是直接创建一个后台进程用于处理其他事务。但不推荐这么处理,毕竟窗口完全不可见的话,可以直接CUI编程,没必要使用GUI。

本文作者:Tocy

版权所有,请勿用于商业用途,转载请注明原文地址。本人保留所有权利。

隐藏windows任务栏中的窗口显示相关推荐

  1. bcb隐藏窗口_BCB隐藏Windows任务栏的方法

    BCB隐藏Windows任务栏的方法 来源:互联网  宽屏版  评论 2006-01-09 12:27:01 void __fastcall TForm1::FormCreate(TObject *S ...

  2. Windows 2000/XP中对窗口进行透明化

    Windows 2000/XP中对窗口进行透明化 作者:abhinaba 翻译:南京中萃食品有限公司 肖进 来源:http://www.codeproject.com/dialog/WinTrans1 ...

  3. 在EXCEL中一个窗口显示多个工作表

    在EXCEL中一个窗口显示多个工作表 目录 在EXCEL中一个窗口显示多个工作表 1.点击视图选项卡中"全部重排" 2.弹出窗口 在"排列方式"中选点击&quo ...

  4. HTML文件图标异常Chrome,win7系统任务栏中chrome图标显示异常的解决方法

    很多小伙伴都遇到过win7系统任务栏中chrome图标显示异常的困惑吧,一些朋友看过网上零散的win7系统任务栏中chrome图标显示异常的处理方法,并没有完完全全明白win7系统任务栏中chrome ...

  5. windows下cmd中输入nvidia-smi显示不是内部或外部命令解决方法!

    windows下cmd中输入nvidia-smi显示不是内部或外部命令解决方法! 我的cuda.cudnn等都是可以正常使用的,只是查看不了显存,在查看了很多博客后下面这个方法亲测有效: 在环境变量的 ...

  6. 强制隐藏windows任务栏(使用快捷键才弹出)(hide the taskbar in win10)

    文章目录 动机 方法 打开任务栏设置&自动隐藏任务栏 安装taskbar hide 设置快捷键控制任务栏 后记   本文提供了一种直接隐藏任务栏的方法,想打开任务栏的时候使用快捷键即可. 动机 ...

  7. 密码的显示与隐藏php,el-input 标签中密码的显示和隐藏功能的实例代码

    效果展示: 密码隐藏: 密码显示: 代码展示: 一:标签代码 二: var app = new Vue({ el:"#app", data:{ users:[], total:10 ...

  8. java 隐藏任务栏,在Java中隐藏Windows任务栏?

    I want to hide the Windows taskbar with Java. How can I do this? My compiler is Eclipse with JDK 7. ...

  9. linux 自动隐藏任务栏_如何自动隐藏Windows任务栏

    linux 自动隐藏任务栏 Every bit of monitor space is precious, particularly vertical space. But in Windows 10 ...

最新文章

  1. R语言ggplot2可视化分组散点图、将图例放置在图像内部的指定区域、自定义缩放图例中点形状pch的大小(增大或者缩小)、change size of shape elements
  2. 你了解微服务架构么?
  3. Algorithm of permutation(全排列算法)
  4. WEB前端学习二 JS作用域和作用域链
  5. cordova 实现网页缓存_如何解决ionic,cordova混合开发的app缓存大的问题
  6. 去掉网页上链接或按钮的虚线框
  7. Linux中last的用法及参数,查看登陆系统用户的信息
  8. lintcode_189. 丢失的第一个正整数
  9. Android中处理崩溃异常和分析日志的两种思路
  10. github常见搜索和热度
  11. 通信原理及系统系列19—— 锁相环(鉴相器分析_2)
  12. 苹果手机使用技巧篇:教你完美使用好苹果手机的4个方法
  13. 在百度Create 2021大会聆听李彦宏,王海峰“论道”AI
  14. jquery.cookie.js 每天首次打开页面时弹出广告
  15. Linux du按大小排序
  16. 五脏六腑等最喜欢的食物
  17. pr怎么导出html格式的字幕,【答疑】如何将SRT文件导入PR生成字幕? - 视频教程线上学...
  18. 基于人工势场法的移动机器人路径规划研究(Matlab代码实现)
  19. 算法-第四版-练习1.3.8解答
  20. Leetcode.789.逃脱阻碍者---贪心+数学

热门文章

  1. 【hive】hive----自定义UDF 函数-----时间格式化以及取出双引号的代码
  2. JAVA锁之可重入锁和递归锁及示例代码
  3. apipost脚本使用二
  4. 使用抓包工具fiddler和apipost进行接口测试
  5. Servlet 表单数据笔记
  6. linux进程通信中有名管道的特点,linux进程通信之(四):有名管道的读与写
  7. 为什么选择react?为前端开发选择React的六大理由
  8. python url解析path_Django(CBV解析、模板层)
  9. html外联内联,HTML内联元素
  10. delphi与java_Delphi XE8中Delphi和JAVA数据类型对应关系!