【发布时间】:2025-12-28 04:20:08
【问题描述】:
我正在创建一个程序来使用我的鼠标和键盘自动与另一个应用程序交互。我找到了可以单击一次键并立即释放它的代码(据我所知);这是 SendKeys.Send("{up}")。如果可以的话,请不要把事情复杂化,我在这里学习。
我的问题是如何发送按键并将其按住由变量确定的时间长度。我大致想:
Press and hold arrow key "up"
wait(Random.next(1,10))
Release arrow key "up"
我在 Visual Studio 17 社区中用 Visual Basic 编写它。
谢谢!
查看 Valyrean Groups 代码后,我将其编辑为:
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
我现在的问题是如何更改按住的箭头键?
【问题讨论】:
-
仅供参考
keybd_event()已弃用并替换为SendInput()
标签: vb.net input keyboard wait