我正在创建一个程序,使用我的鼠标和键盘自动与另一个应用程序进行交互。我发现代码会立即点击该键并立即释放它(据我所知);这是SendKeys.Send(“{up}”)。请不要过于复杂的事情,如果你可以,即时在这里学习。如何按住按键?
我的问题是如何发送按键,并保持一段时间由变量决定。我大致想要:
Press and hold arrow key "up"
wait(Random.next(1,10))
Release arrow key "up"
我在Visual Studio 17社区中使用Visual Basic编写它。
谢谢!
看着Valyrean组代码后,我已经编辑它归结为这样:
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Integer, ByVal wMapType As Integer) As Integer
Private Sub HoldKeyDown(ByVal key As Byte, ByVal durationInSeconds As Integer)
keybd_event(key, MapVirtualKey(key, 0), 0, 0) ' Down
Threading.Thread.Sleep((RandNum.Next(1000, 5000)))
keybd_event(key, MapVirtualKey(key, 0), 2, 0) ' Up
End Sub
我的问题是现在我该怎样改变箭头键被按下并保持?
忽略此编辑 – Norman
FYI'keybd_event()'已过时,被替换为[**'SendInput()'**](HTTPS ://msdn.microsoft.com/en-us/library/windows/desktop/ms646310(v = vs.85).aspx) –