Windows 系统如何将窗口固定在桌面?

2017-03-15 01:43:42 +08:00
 JJaicmkmy

正在用 Electron 写 YouTube Subs Counter ,在桌面上查看实时频道订阅数的小工具。

在 macOS 下可以直接使用 Electron 自带的 type: 'desktop' 来将窗口固定在桌面,永远置于最底层。但是这个选项并不支持 Windows ,所以想问一下, Windows 下有能够实现这个功能的软件吗?

我有 Google 到 这个 软件完美符合我的需求,但是为了这个功能花50刀感觉不值。

4195 次点击
所在节点    问与答
14 条回复
deepjia
2017-03-15 02:43:35 +08:00
DeskPins
deepjia
2017-03-15 02:44:06 +08:00
我错了 这是顶层……
loading
2017-03-15 07:00:35 +08:00
http://gadgetsrevived.com/download-sidebar/

如果是自己写的软件,让他工作在小工具模式。
ob
2017-03-15 07:41:09 +08:00
用 ahk 可以做到。就是窗口置顶。
kokutou
2017-03-15 07:43:32 +08:00
ahk 可以控制窗口属性,很方便。
ckzx
2017-03-15 07:59:51 +08:00
最近也有一个这样的需求,我也在想考虑直接锁定。
jasontse
2017-03-15 08:45:47 +08:00
记得用 SetParent 把 Parent 设成桌面就可以了
johnny23
2017-03-15 08:55:43 +08:00
一些播放器永远置顶功能 可以参考一下
johnny23
2017-03-15 08:56:17 +08:00
不好意思 回复错了
loudis
2017-03-15 08:59:45 +08:00
最底层固定? 自己固定位置,然后不自动获得 focus 的 window 不就是了吗?
vopsoft
2017-03-15 09:51:03 +08:00
redtears
2017-03-15 11:08:38 +08:00
JJaicmkmy
2017-03-15 11:22:08 +08:00
@vopsoft 我要的是置于底层,不是置于顶层。
geelaw
2017-06-03 21:51:25 +08:00
实际上你想达成的是 Windows Desktop Gadget 的样式。它的特点:

1. 置底
2. 对最小化所有窗口以及其他排列窗口功能免疫
3. 对“显示桌面”免疫
4. 对 Aero Peek 预览桌面免疫

第一步:参考第三步。

第二步:可以对改变大小免疫,但是不能对改变位置免疫(除非你阶段 WINDOWPOSCHANGING,但是这样会让你的用户无法移动窗口),方法是设置窗口的边框类型为 FixedSingle,然后禁用最小化按钮。

第三步:在用户显示桌面的时候,桌面成为置顶窗口,除非你的窗口也进入置顶状态否则无法显示。因此你可以在系统中安装一个 hook 并观察:如果桌面成为了置顶窗口,你就把自己置顶,否则你就把自己置底。

第四步是可以的:用 DWMWA_EXCLUDED_FROM_PEEK,这样当用户用 Windows + , 或者鼠标移动到右下角的时候,你的窗口仍然会显示。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa969524(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/aa969530(v=vs.85).aspx

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/347520

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX