V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dzdh
V2EX  ›  Windows

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

  •  
  •   dzdh · 362 天前 · 1557 次点击
    这是一个创建于 362 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    8 条回复    2023-11-27 21:22:15 +08:00
    nulIptr
        1
    nulIptr  
       362 天前
    从权限上讲,windows 防不了
    thinkm
        2
    thinkm  
       362 天前
    No way
    c2const
        3
    c2const  
       362 天前
    "手动 cv 也弹个提示的那种"
    --------------------------------------
    windows 上不知道有没有现成的,但思路应该是应用层 Hook 系统剪贴板监听、全局键盘监听,最后再套个 UI 界面 :)
    至于权限,应用层 Hook 应该就够大部分应用了,想更安全一点就上驱动对抗 :)
    Whalko
        4
    Whalko  
       362 天前
    lz 重新定义剪贴板管理……win 上的软件真的能真的会自动读剪贴板吗?感觉不存在……就算手动 CV 了也不过是显示在输入框里而已。
    dzdh
        5
    dzdh  
    OP
       362 天前
    @Whalko 比如各种翻译软件。复制后自动弹出翻译结果,主打一个便捷。翻译软件能做到,保不齐其他软件也会偷摸复制 比如 企鹅全家桶有没有
    matepi
        6
    matepi  
       362 天前
    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
        7
    geelaw  
       362 天前
    这件事情大概要 Windows 自己做才能做好。从权限上考虑,剪贴板是 window station 级别的对象,并且同一个 window station 里面的所有窗口都可以访问(包括高权限、普通权限、低完整级别的进程,即可以从记事本复制命令到管理员权限的命令行,等等)。

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

    @Whalko #4 远古时期( 2003 年)的 Office 系列自带一个剪贴板历史管理工具,它显然要不断监听并读取剪贴板。
    ysc3839
        8
    ysc3839  
       362 天前 via Android
    @geelaw 不那么考虑兼容性的话,同步模式并不是什么问题,比如 macOS 在加入了文件夹权限后,用传统 POSIX API 进行文件操作的程序,等待用户授权时也会阻塞住。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   912 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:53 · PVG 05:53 · LAX 13:53 · JFK 16:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.