我正在创建一个宏程序来记录和播放鼠标和键盘输入.录制工作正常,鼠标播放也是如此,但我在播放键盘输入时遇到了麻烦 - 特别是在释放前按住键几秒钟.这不等于重复按键.这是我尝试过的:
技巧1:Me.KeyDown
Private Sub keyboard_pressed() Handles Me.KeyDown
Dim keypress = e.KeyData
MsgBox(keypress)
End Sub
Run Code Online (Sandbox Code Playgroud)
仅在窗口处于焦点时才起作用.
技术2:SendKeys
Private Sub timer_keyboardplayback_Tick() Handles timer_playback.Tick
SendKeys.Send("{LEFT}")
timer_playback.Interval = 30
End Sub
Run Code Online (Sandbox Code Playgroud)
工作失焦,但重复按左箭头而不是按住箭头
技巧3:keybd_event
Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Sub timer_keyboardplayback_Tick() Handles timer_playback.Tick
Const keydown = &H1
Const keyup = &H2
Dim VK_LEFT = 37
keybd_event(VK_LEFT, 0, keydown, 0) …Run Code Online (Sandbox Code Playgroud)