我正在使用 Dragon NaturallySpeaking 的语音识别插件来使用我的声音创建击键自动化。该插件公开了 VB 功能SendKeys
。我知道 shift 键修饰符 ( +
) 可以与几乎任何其他字符组合,但我不想将 shift 键与任何东西组合;我只是想发送一个单一的 shift 按键而没有其他任何东西。这可能吗?
我尝试过的一些事情:
SendKeys "+"
SendKeys "{Shift}"
有任何想法吗?
更新:
根据user14797724发布的文章,它使用了 keybd_event User32 库函数,以及System.Windows.Forms.Keys 枚举的文档,我修改了代码以使用左移。这是代码:
Imports System.Runtime.InteropServices
Imports System.Windows.Forms
Public Module SendWinKey
Const KEYEVENTF_KEYDOWN As Integer = &H0
Const KEYEVENTF_KEYUP As Integer = &H2
Declare Sub keybd_event Lib "User32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As UInteger, ByVal dwExtraInfo As UInteger)
Public Sub Main()
keybd_event(CByte(Keys.LShiftKey), 0, KEYEVENTF_KEYDOWN, 0) 'press the left shift key down
keybd_event(CByte(Keys.LShiftKey), 0, KEYEVENTF_KEYUP, 0) 'release the left shift key
End Sub
End Module
我希望这对我有用,但似乎我使用的脚本环境不支持 Imports 关键字,并且需要符合 CLS 的变量才能进行外部调用。我可以通过在适当的类型前面加上完整的命名空间来解决 Imports 关键字问题,但是有没有人有一个替代的外部调用我可能会做出符合 CLS 的?UIinteger类型似乎是它不喜欢的类型。
更新 2:
当我把 VBScript 作为我的标签之一时,我不知道我在想什么。我已经标记了 VBA,但有人将其编辑了。尽我所能告诉我正在使用的“语言”是 Visual Basic 的一个子集。这是编辑器的屏幕截图。