如何让你的窗口置顶成为最靓的仔(Windows10)

9 篇文章 0 订阅
1 篇文章 0 订阅

大家应该都知道在Windows 8以上引入了一个新的概念叫做窗口段 普通的窗口运行于ZBID_ DESKTOP 级上 ,这导致我们的窗口Z序无法以任何常规方式穿过更高级别的系统窗口,但幸运的是Windows提供了一个辅助应用技术 ,它允许我们通过正常的方式将自己窗口的窗口段提升到最高级别,也就是ZBID_UIACCESS.


如何做到

要做到这里我们首先需要在应用清单文件中对应的位置加入UiAccess=true

Vs 2015可以通过进入项目设置 链接器 清单文件 绕过UI保护设置来设置 。

详见Windows Application UIAccess_Leen的博客-CSDN博客Windows Application UIAccesswindows Vista之后 应用程序引入了一个新的属性UIAccess。UIAccess for UI automation applicationsMicrosoft UI automation is the Windows Vista model to support accessibility requiremehttps://blog.csdn.net/linlin003/article/details/51097583?ops_request_misc=&request_id=&biz_id=102&utm_term=UiAccess&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-51097583.142%5Ev87%5Ekoosearch_v1,239%5Ev2%5Einsert_chatgpt

UiAccess的强大之处已经足以让我们概括系统中的绝大部分窗口,但同时对于同级别的辅助应用程序来说窗口实际谁上谁下仍然决定于谁是活动窗口,那么我们可以使用常规置顶的方法在“耍一个无赖 ”.

各位应该都知道BringWindowToTop是一个Windows API,它提供了在同一窗口段内将非Z序顶部窗口置顶的的一个途径,听到这里相信各位已经想出了一个办法 以下是我的解决办法 

//创建窗口时
HWND hWnd=CreateWindow(SomeArgs);
UpdateWindow(hWnd);
ShowWindow(hWnd);
SetTimer(hWnd,1,1,NULL);

//窗口过程中
switch(msg){
case WM_TIMER:
    BringWindowToTop(hWnd);
    break;
//SomeCode
}

你应该看出来了,在这段代码里我通过设置一个计时器并在计时器的处理过程中不断调用 BringWindowToTop,事实证明效果还挺好。

在Windows 10中 要让程序获得UiAccess特权我们需要一个数字签名。

对于个人开发者来说获得由受信任的根CA及其下属所签发的数字签名抑或证书可能是困难的,但我们如果是在自己的计算机上使用则可以使用 测试签名,我们也可以称为自签。

可见这篇文章 创建自签名证书, 对exe文件进行数字签名_exe签名_宇龍_的博客-CSDN博客创建自签名证书,对exe文件进行数字签名https://blog.csdn.net/Think88666/article/details/125947720将自己可执行文件的签名绑定好之后,我们还需要一步操作。

将文件复制到C:\Program Files\或C:\Program Files(x64)\下的一个子目录,自行创建也可。

最后,将证书文件添加到受信任的根证书目录。


效果

VS 任务管理器

VS 开始菜单

 VS 语音输入

 VS 切换桌面

 VS alt+tab任务视图

 VS 屏幕键盘

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如何设置让一个窗口总在最前(Exaware OnTop和PushPin)软件下载 Windows中打开一个新窗口或切换任务时,原有的活动窗口就会被它所覆盖。不过,像Winamp等软件,却有一个能让自己的操作窗口总在最前的功能,非常实用。其实,只要你安装了像ExaWare OnTop和PushPin这样的免费小软件,也一样可以让任意Windows操作窗口总在最前面,不让其他的窗口挡住它! 1.好用的ExaWare OnTop 下载并安装该软件后,双击桌面上的ExaWare OnTop 图标启动程序,我们看不到它的任何窗口界面,但在系统托盘上可以发现它的图标。单击该图标会弹出一个菜单,在这里列出了当前系统中所有窗口的标题。要想让某个窗口总在最前面,只要将鼠标移到相应的窗口标题项并点击鼠标(左右键均可)即可,如图所示。单击后该窗口标题前面的图标也相应地多了一个方框(如果没有图标则会显示一个对勾),表明该窗口已经设置成功。这时打开该窗口,再打开其他程序窗口,看看它是否一直总在其他窗口的前面而不被遮住?怎么样,是不是有种高高在上的感觉?要想取消 OnTop 状态,只要重复一遍上面的操作就可以了。 看到这里你是不是有一个疑问:如果同时将两个窗口设置为总在最前(Always OnTop)的状态,那将会发生什么事情呢?其实也很简单,如果两个(或多个)窗口同时处于总在最前的状态,那说明它们的地位平等,这时先激活谁谁就在最上面(和设置前一样看待)。另外还有一个问题需要注意:如果需要退出该软件,建议点击系统托盘上的软件图标并选择菜单中的“Exit and Restore”命令,这样在退出软件的同时可以恢复各个窗口的原始状态,以免给使用带来不便。 2.小巧的PushPin 相对于ExaWare OnTop 来说,PushPin 的体积更为小巧,只有区区的22KB 下载得到的是一个压缩包,由于它是一款绿色软件,我们只要直接将该压缩包解压缩到某个指定的目录下即可运行(主程序文件名为Pushpin.exe),同样看不到主程序窗口,只会发现系统托盘处多了一个图标。要想让某个操作窗口总在最前面,只要在其标题栏上(在任务栏按钮上也可)单击鼠标右键并从弹出的菜单中选择“Always on top”命令即可。要退出程序只需用鼠标右击系统托盘上的软件图标,并从弹出的菜单中选择“Remove”命令即可

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的叶一笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值