如何在VBS脚本中使用SendKeys发送单次Shift键 无需搭配其他按键
VBS单独发送Shift键的解决方案
WScript.Shell 提供的 SendKeys 方法中,+ 仅作为Shift修饰键的标记,作用是标识后续输入的按键需要配合Shift按下,本身不支持单独触发Shift的按下、弹起事件,所以你之前尝试的几种写法都无法生效。
可行实现方案
以下代码仅依赖VBS原生对象和系统内置组件,无需额外工具:
Set WshShell = WScript.CreateObject("WScript.Shell") ' 触发Shift按下事件,虚拟键码16对应通用Shift,指定右Shift可替换为161,指定左Shift可替换为160 WshShell.Run "%windir%\System32\rundll32.exe user32.dll,keybd_event 16,0,0,0", 0, True ' 触发Shift弹起事件,完成单次Shift按键输入 WshShell.Run "%windir%\System32\rundll32.exe user32.dll,keybd_event 16,0,2,0", 0, True
参数说明
keybd_event是系统user32.dll提供的原生键盘事件接口,四个参数分别对应虚拟键码、硬件扫描码、事件类型(0为按下,2为弹起)、附加参数- Run方法的第二个参数0表示隐藏执行窗口,第三个参数True表示等待当前命令执行完成再运行后续逻辑
内容的提问来源于stack exchange,提问作者Sandro Cutri
相关产品推荐
相关产品推荐

