即便是手动 cv 也弹个提示的那种。防止 win 下的软件偷剪贴板的东西。
1
nulIptr 2023-11-27 09:59:26 +08:00
从权限上讲,windows 防不了
|
2
thinkm 2023-11-27 10:01:51 +08:00
No way
|
3
c2const 2023-11-27 10:32:11 +08:00
"手动 cv 也弹个提示的那种"
-------------------------------------- windows 上不知道有没有现成的,但思路应该是应用层 Hook 系统剪贴板监听、全局键盘监听,最后再套个 UI 界面 :) 至于权限,应用层 Hook 应该就够大部分应用了,想更安全一点就上驱动对抗 :) |
4
Whalko 2023-11-27 11:48:06 +08:00
lz 重新定义剪贴板管理……win 上的软件真的能真的会自动读剪贴板吗?感觉不存在……就算手动 CV 了也不过是显示在输入框里而已。
|
5
dzdh OP @Whalko 比如各种翻译软件。复制后自动弹出翻译结果,主打一个便捷。翻译软件能做到,保不齐其他软件也会偷摸复制 比如 企鹅全家桶有没有
|
6
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 。 |
7
geelaw 2023-11-27 12:22:23 +08:00
这件事情大概要 Windows 自己做才能做好。从权限上考虑,剪贴板是 window station 级别的对象,并且同一个 window station 里面的所有窗口都可以访问(包括高权限、普通权限、低完整级别的进程,即可以从记事本复制命令到管理员权限的命令行,等等)。
但要完成这一点是相当困难的,因为远古时期的 API 是同步 API ,剪贴板也不例外,贸然插入一个模式对话框会导致尝试粘贴的程序假死。 @Whalko #4 远古时期( 2003 年)的 Office 系列自带一个剪贴板历史管理工具,它显然要不断监听并读取剪贴板。 |