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

请问 windows 上如何通过一行命令实现模拟按键(ctrl+v)? 正文里有 mac 端的实现

  •  
  •   songz · 2018-07-23 21:13:09 +08:00 · 3936 次点击
    这是一个创建于 2074 天前的主题,其中的信息可能已经有所发展或是发生改变。

    "osascript -e 'tell application "System Events" to keystroke "v" using {command down}'"

    第 1 条附言  ·  2018-07-23 21:57:10 +08:00
    希望这行命令可以直接在 cmd 或者 powershell 里运行,运行完当前窗口会接收到 ctrl+v,然后把剪贴板的最新内容粘贴出来
    第 2 条附言  ·  2018-07-24 00:22:58 +08:00
    xxx.bat:

    powershell -Command "$wshell = New-Object -ComObject wscript.shell;$wshell.SendKeys('^v')"

    yyy.vbs:

    CreateObject("Wscript.Shell").Run "C:\Users\songz\Desktop\add.bat", 0, True

    # 通过以上两行,算是可以在任何程序里实现模拟“ ctrl+v ”了

    # 使用 vbs 的原因是,运行 bat 会弹出一个短暂的黑框,ctrl+v 会被这个窗口吃了。所以得用 vbs 把这黑框去掉
    14 条回复    2018-07-24 00:36:04 +08:00
    thedrwu
        1
    thedrwu  
       2018-07-23 21:22:25 +08:00 via Android
    写个简单的 C,用 sendinput()
    songz
        2
    songz  
    OP
       2018-07-23 21:25:40 +08:00
    @thedrwu #1 不好意思,没说清楚,是希望可以在 cmd 或者 powershell 里使用的
    xupefei
        3
    xupefei  
       2018-07-23 21:37:16 +08:00 via Android
    Powershell 调用 SendInput API,代码可自行 Google。
    FanWall
        4
    FanWall  
       2018-07-23 21:45:57 +08:00 via Android   ❤️ 1
    wscript.shell.sendkeys “^v ”

    具体实现可以自行检索下
    songz
        5
    songz  
    OP
       2018-07-23 21:55:31 +08:00
    @FanWall #4 不是 IT 从业人员,这个有点吃力,搜索到的命令往 powershell 里各种报错
    kokutou
        6
    kokutou  
       2018-07-23 21:56:27 +08:00
    AutoHotKey
    kokutou
        7
    kokutou  
       2018-07-23 21:56:34 +08:00
    AutoIt3
    songz
        8
    songz  
    OP
       2018-07-23 21:58:01 +08:00
    @kokutou #6 不能保证全部终端里都有 ahk,希望是系统自带的命令
    FanWall
        9
    FanWall  
       2018-07-23 22:09:29 +08:00 via Android   ❤️ 1
    @songz #5 是 VBS,然后可以直接通过批处理调用,也可以利用用一些技巧在批处理中不经过 VBS 文件执行 VBS 脚本。爪机没法直接给出代码,你参考这两篇改一改试试:

    https://m.jb51.net/article/15335.htm
    https://m.jb51.net/article/25962.htm
    kokutou
        10
    kokutou  
       2018-07-23 22:41:38 +08:00 via Android   ❤️ 1
    @songz
    vbs 了
    songz
        11
    songz  
    OP
       2018-07-24 00:23:24 +08:00
    @FanWall #9 谢谢老哥,实现了
    songz
        12
    songz  
    OP
       2018-07-24 00:23:54 +08:00
    @kokutou #10 最后确实用到 vbs,谢谢了
    songz
        13
    songz  
    OP
       2018-07-24 00:24:32 +08:00
    @xupefei #3 最后用了 sendkey
    geelaw
        14
    geelaw  
       2018-07-24 00:36:04 +08:00   ❤️ 2
    此外你还可以建立这样一个快捷方式:

    PowerShell.exe -NoProfile -Command (New-Object -ComObject WScript.Shell).SendKeys('^V')

    然后右键点快捷方式,选属性,把启动窗口风格改成“最小化”。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5205 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:39 · PVG 17:39 · LAX 02:39 · JFK 05:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.