想把一个可交互的网站像 Win7 小组件一样挂在桌面
主要是想把 ChatGPT 和 笔记( https://notepad.1976f.com/ )挂桌面,这样 Win+D 就可以直接写和看了~ 没有再打开一个软件再读写的步骤 而且随时能看到
笔记因为不需要权限,随手写点东西和别人共享起来也方便,这边写,那边桌面就有直接能看,不用再打开某软件回复 特别轻量级
有很多可以顶置的软件,但是就是找不到可以底置的软件…… 求教~
大哥大姐有知道的么?求教~
很多朋友提出可以设置一个快捷键呼出,或者放在其他地方然后用快捷键显示等~ 我详细说说这里用户体验的想法
这里的巧思在于桌面是一个你时不时就能看到的地方。
我想的场景是,可以自己写笔记备忘,也可以多人随手写写画画,比较轻松吧~
书写上确实和使用快捷键呼出没有区别,反正都是要按快捷键的嘛,区别只是非 Win+D。
但阅读上的体验差很多,一个是随手看到,另一个是还需要主动去呼出查看
我把 笔记 换成 留言板 的说法应该更加贴切吧
############### 展开说说
现实生活中把常用东西放桌面是个比较自然的做法吧
1
WeaPoon 2023-04-26 22:24:04 +08:00
为什么不问 ChatGPT 了?我问的是 C#的,也不知道你用的啥,所以代码就不贴了。就贴一下它回答的原理部分。
问 ChatGPT 问题一:请使用 C#编写,把窗口钉在桌面上。 我们在 MainForm 类中使用 WinApi.SetParent 函数将窗口变为桌面的子窗口。我们还使用 WinApi.SetWindowLong 函数将 WS_EX_LAYERED 和 WS_EX_TRANSPARENT 扩展样式添加到窗口的扩展风格中,使窗口在不阻塞鼠标事件的情况下变为透明。 问 ChatGPT 问题二:C#编写无边框窗口,可以使用鼠标移动窗口 我们创建了一个 MainForm 类型的窗口,并在构造函数中设置窗口的标题、大小和边框样式。然后,我们在窗口上注册了鼠标事件,使窗口可以响应用户拖动窗口的动作。 具体来说,当用户按下鼠标左键时,我们将当前鼠标坐标保存到 lastMousePosition 变量中。然后,在用户移动鼠标时,我们检查是否按下了鼠标左键,并根据鼠标位置的变化计算窗口新的位置,并将其设置为窗口的新位置。最后,当用户释放鼠标左键时,我们将 lastMousePosition 变量重置为 Point.Empty ,以便下一次拖动时重新开始计算位置变化。 我们使用 MouseDown 、MouseMove 和 MouseUp 事件来处理鼠标动作,它们在用户按下、移动和释放鼠标时触发,并传递 MouseEventArgs 对象,其中包含了有关鼠标事件的信息,如鼠标的按键、位置等。我们需要根据鼠标事件的信息,判断用户是否执行了拖动行为,然后计算和更新窗口位置信息。 |
2
WeaPoon 2023-04-26 22:27:57 +08:00
抱歉,我好像突然明白,你问的是第三方解决方案,我以为是问的代码。。。
|
3
zhzy 2023-04-26 22:32:09 +08:00
也许这里的信息对你有帮助: [c#中如何使程序嵌入到桌面,成为桌面背景,和一些日历程序类似?]( https://social.msdn.microsoft.com/Forums/zh-CN/0c3d1671-1a2a-4e97-b81d-5f38957de51c/c?forum=visualcshartzhchs)
大概率是要用到 Windows API 的, 因为我记忆里的类似软件几乎都是 WinForm 做的. 其实也许可以用另一个思路: 绑定个快捷键, 不在任务栏显示应用图标, 这基本上就已经无感了, 只是 Win+D 换成别的而已. 很多翻译软件也是这样做的 |
4
Inf1nity 2023-04-26 22:52:29 +08:00 1
把 ChatGPT 和笔记放到另外一个虚拟桌面上,需要的时候用 ctrl + win + ← / → 切换桌面即可。
|
5
ysc3839 2023-04-26 23:10:30 +08:00 via Android
以前弄过中考、高考倒计时的程序,实现过这个功能,但代码可能找不到了,印象中 XP 和 Win7 的方法不太一样。
至于现成的软件,我估计是没有。 |
6
documentzhangx66 2023-04-26 23:33:54 +08:00
换个思路,试试多屏。
比如我现在 10 个屏幕,你这 2 个功能,可以单独放在一个屏幕里。 |
7
guoshim 2023-04-26 23:36:17 +08:00 1
PowerToys 有个 always on top 的功能 https://github.com/microsoft/PowerToys 也许能满足部分需求。
|
8
codehz 2023-04-27 01:10:57 +08:00 1
只是网页的话可以用这个 https://github.com/ivant04/Custom-Widget-App (有问题别问我,我不是作者)
|
9
ns09005264 2023-04-27 02:59:58 +08:00
我有个简单的思路,就是用 AHK 之类的脚本来实现,按下 Ctrl+D 后,把你要显示的应用显示出来。
|
10
Sisyphe42 2023-04-27 03:10:51 +08:00
|
11
YY202266 2023-04-27 04:59:57 +08:00
|
12
forgottencoast 2023-04-27 09:28:19 +08:00
另外一个思路就是设置一个快捷键,把他们俩弄出来啊。
反正你都要按 Win+D 的,换成另外一个也不费事。 |
13
minami 2023-04-27 09:59:26 +08:00
Deskpins
|
14
manasheep 2023-04-27 10:05:01 +08:00
win11 ,新建一个虚拟桌面,专门放这俩就行了。
当然,单独扩展个显示器也不错。 |
15
assiadamo 2023-04-27 10:11:45 +08:00
DeskPins 400k 小软件的事情
|
17
lqzhgood OP @documentzhangx66 @manasheep
多屏确实好,但是又有另一个 windows 老大难的问题~ 怎么解决,Win+D 仅显示当前桌面,不然放到其他桌面也一样被最小化了。 我知道有个软件 https://github.com/CryptKat/ShowDesktopPerMonitor ,但是不好用,很多 BUG PowerToys 也有 issues 提到这个问题 https://github.com/microsoft/PowerToys/issues/24011 |
18
lqzhgood OP |
21
celeron533 2023-04-27 11:13:43 +08:00
|
22
documentzhangx66 2023-04-27 11:16:25 +08:00
@lqzhgood 你都多屏了,干嘛还 Win + D 。
|
23
freeoptions 2023-04-27 15:44:57 +08:00
@assiadamo 下载试了下,没什么用,按下 win+d ,软件窗口照样全部最小化
|
24
freeoptions 2023-04-27 15:47:33 +08:00
@celeron533 win11 系统,下载试用了下,没什么用,按下 win+d 软件窗口照样会被最小化
|
25
mainjzb 2023-04-27 17:07:59 +08:00
final h = FindWindow(nullptr, TEXT('ChatGPT'));
final desktop = FindWindow(nullptr, TEXT('Program Manager')); final result = SetParent(h, desktop); 客户端用的这个, 我自己 win11 试了试可行。 边框确实会变成 win7 模式。问题不大。 https://github.com/lencx/ChatGPT |
26
mainjzb 2023-04-27 17:15:06 +08:00
https://wwxx.lanzoue.com/it80H0u2yqpi
我用 dart 写的,调了 win32 库,编译了一个 demo 你可以试试。 好像得正常运行 2 次才能其作用。 成功返回非 0 值 |
27
opengps 2023-04-27 17:23:45 +08:00
windows 的便签 似乎就是你需要的工具,建议体验下看看差异的部分能否接受
|
28
balancircle 2023-04-27 20:34:09 +08:00 1
sordum 的 Window TopMost Control
https://www.sordum.org/9182/window-topmost-control-v1-3/ 他家的小工具都挺好用的,值得一试 |
29
ossphil 2023-04-28 07:48:34 +08:00
我也想过这个功能,想把 obsidian 笔记钉在桌面
|
30
lqzhgood OP @balancircle 是 底层 不是 顶层 哦~
|