基本上我一直在寻找能够模拟按下按钮并释放按钮的代码。
我尝试过两个解决方案(keybd_event,sendmessage),但没有一个解决方案。
Const VK_W As Byte = &H57 'W key
keybd_event(VK_W, 0, 0, 0) ' Generates a KEY_DOWN
Threading.Thread.Sleep(1500) '
Const KEYEVENTF_KEYUP As Byte = &H2
keybd_event(VK_W, 0, KEYEVENTF_KEYUP, 0) 'Generates a KEY_UPenter code here
这只是一个单一的" w" 1.5秒后按键。 应该发生的事情就像" wwwwwwwwwwwwwwwwww"。
我希望该计划能够注册下来" w"设定持续时间为秒。
(请不要建议我使用sendkeys,因为我正在通过使用sendkeys发送单击键来处理一个无法可靠运行的程序。)
程序将处于前台,而不是最大化,并且该程序将注册鼠标输入而不会被聚焦。
谢谢。
答案 0 :(得分:0)
1000毫秒会给你10个W,这似乎是合理的。
[这是伪代码]:
Private Sub iKeyDown(ByVal vKey As Keys)_
keybd_event(CByte(vKey), 0, KEYEVENTF_EXTENDEDKEY, 0)
End Sub
Private Sub something(...)
iKeyDown(Keys.W)
' start timer to release the "W" key in 1 sec.
Timer1.Interval = 1000
Timer1.Start()
End Sub
Private Sub Timer1_Tick
Timer1.Stop()
' release the "W" key!
iKeyUp(Keys.W)
End Sub
如果您要使用控制台,请参阅timer class选项。