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

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

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

    腾讯云最新优惠活动来了:云产品限时1折,云服务器低至88元/年 ,点击这里立即抢购:9i0i.cn/qcloud,更有2860元代金券免费领取,付款直接抵现金用,点击这里立即领取:9i0i.cn/qcloudquan

    (福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

    "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   ·   实用小工具   ·   1073 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:17 · PVG 03:17 · LAX 12:17 · JFK 15:17
    Developed with CodeLauncher
    ? Do have faith in what you're doing.


    http://www.vxiaotou.com