V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
biuuuuu
V2EX  ›  问与答

Windows 如何自动地对剪切板内容进行读取写入?

  •  
  •   biuuuuu · 2023-07-12 09:36:42 +08:00 · 923 次点击
    这是一个创建于 535 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司电脑需要远程桌面上网,但是管理员把复制粘贴给禁止了,也就是远程桌面复制的内容没法本机粘贴,反过来也是一样。

    本机和远程目录有一个共享文件夹,本机需要下载内容时是在远程桌面下载到这个文件夹中。现在想法是在这个文件夹里面建立一个文本文件,每次 Ctrl+C 的时候复制之后顺便将剪切板内容保存到该文件中,每次 Ctrl+V 的时候事先将该文件内容读取到剪切板后再进行常规粘贴。

    查了很久也是一头雾水,请问该怎么实现这个想法呢?

    5 条回复    2023-07-12 11:43:25 +08:00
    blackbeardd
        1
    blackbeardd  
       2023-07-12 10:07:27 +08:00
    写个复制粘贴的事件监听不就行了么
    misdake
        2
    misdake  
       2023-07-12 10:11:34 +08:00 via Android
    发送端监听剪贴板,可以搜索 SetClipboardViewer ,还能找到个 c#的完整程序带代码。监听到就写文件。
    接收端监听文件修改。不过如果文件不在本地的话可能 FileSystemWatcher 监听不到?不太确定。最好是文件放在接收端。
    em70
        3
    em70  
       2023-07-12 10:42:21 +08:00
    写个脚本每一秒读取一次剪贴板,当剪贴板内容改变且不为空,则将内容写到共享文件夹指定文本文件中
    qianc1990
        4
    qianc1990  
       2023-07-12 11:08:43 +08:00
    用 ditto
    biuuuuu
        5
    biuuuuu  
    OP
       2023-07-12 11:43:25 +08:00
    试了一下大家的建议,因为不太懂复制粘贴监听事件,感觉写不出来。目前我掌握的是:文件到剪切板的命令为`clip < Z:test.txt`,剪切板到文件的命令为`powershell -sta "add-type -as System.Windows.Forms; [windows.forms.clipboard]::GetText()" > Z:test.txt`

    现在的情况是我需要按下 Ctrl+C 的时候:先执行默认的 Ctrl+C ,然后执行命令一;按下 Ctrl+V 的时候:先执行命令二,然后执行默认的 Ctrl+V

    请问这个该如何实现呢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2856 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 09:08 · PVG 17:08 · LAX 01:08 · JFK 04:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.