有能像 iOS 那样管理剪贴板的工具吗?

2023-11-27 09:53:50 +08:00
 dzdh

即便是手动 cv 也弹个提示的那种。防止 win 下的软件偷剪贴板的东西。

1586 次点击
所在节点    Windows
8 条回复
nulIptr
2023-11-27 09:59:26 +08:00
从权限上讲,windows 防不了
thinkm
2023-11-27 10:01:51 +08:00
No way
c2const
2023-11-27 10:32:11 +08:00
"手动 cv 也弹个提示的那种"
--------------------------------------
windows 上不知道有没有现成的,但思路应该是应用层 Hook 系统剪贴板监听、全局键盘监听,最后再套个 UI 界面 :)
至于权限,应用层 Hook 应该就够大部分应用了,想更安全一点就上驱动对抗 :)
Whalko
2023-11-27 11:48:06 +08:00
lz 重新定义剪贴板管理……win 上的软件真的能真的会自动读剪贴板吗?感觉不存在……就算手动 CV 了也不过是显示在输入框里而已。
dzdh
2023-11-27 11:52:25 +08:00
@Whalko 比如各种翻译软件。复制后自动弹出翻译结果,主打一个便捷。翻译软件能做到,保不齐其他软件也会偷摸复制 比如 企鹅全家桶有没有
matepi
2023-11-27 11:53:31 +08:00
https://blog.csdn.net/find_the_ferry/article/details/121021534

剪贴板粘贴消息的一些思考
由于没有剪贴板粘贴时触发的相应消息,在粘贴时,是由应用进程来读取剪贴板内容来完成的粘贴操作,所以无法像捕获消息一样通过监听消息来直接捕获到粘贴操作。

根据日常的粘贴操作情况,需要捕获键盘 CTRL+V 消息,或者 hook 粘贴板读取函数
键盘钩子通过 SetWindowsHookEx()或 RegisterRawInputDevices()可以监视 Ctrl+V 击键。经由消息挂钩 SetWindowsHookEx()可以监视与粘贴的窗口消息,如 WM_PASTE ,EM_PASTESPECIAL ,WM_COMMAND 等,但即使是这样,也没有检测每一个可能的粘贴操作的保证。

可能不得不求助于将代码注入目标进程,以直接挂钩查询剪贴板数据的各种 Win32 API 函数。然后,当目标进程尝试在任何类型的粘贴操作期间检索数据时,可以修改这个过程(例如让应用程序认为没有可粘贴的数据)。

简而言之:
没有粘贴触发消息。没法这个上面做比较靠谱的 hook 。
geelaw
2023-11-27 12:22:23 +08:00
这件事情大概要 Windows 自己做才能做好。从权限上考虑,剪贴板是 window station 级别的对象,并且同一个 window station 里面的所有窗口都可以访问(包括高权限、普通权限、低完整级别的进程,即可以从记事本复制命令到管理员权限的命令行,等等)。

但要完成这一点是相当困难的,因为远古时期的 API 是同步 API ,剪贴板也不例外,贸然插入一个模式对话框会导致尝试粘贴的程序假死。

@Whalko #4 远古时期( 2003 年)的 Office 系列自带一个剪贴板历史管理工具,它显然要不断监听并读取剪贴板。
ysc3839
2023-11-27 21:22:15 +08:00
@geelaw 不那么考虑兼容性的话,同步模式并不是什么问题,比如 macOS 在加入了文件夹权限后,用传统 POSIX API 进行文件操作的程序,等待用户授权时也会阻塞住。

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

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

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

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

© 2021 V2EX