如何在VB里实现自动按键盘?

2024-11-29 09:27:30
推荐回答(1个)
回答1:

Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
'鼠标按上按下的函数
Dim a As Integer
Private Sub Command1_Click()
Command1.Caption = IIf(Command1.Caption = "结束循环", "开始循环", "结束循环")
Timer1.Enabled = True
Timer1.Interval = IIf(Timer1.Interval = 100, 0, 100) '间隔都是0。1秒
End Sub

Private Sub Timer1_Timer()
a = a + 1
If a = 1 Then
SendKeys "{esc}"
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 '按下
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 '弹起
SendKeys "{down}"
SendKeys "{enter}"

ElseIf a = 11 Then '延时1秒
SendKeys "{enter}"
SendKeys "{up}"
ElseIf a = 16 Then '再延时0。5秒
SendKeys "{enter}"
ElseIf a = 17 Then '再延时0。1秒回到开始
a = 0
End If
End Sub
'键盘 按一次 ‘Esc’
'鼠标 按一次 ‘左键’
'键盘 按一次 ‘Down’
'键盘 按一次 ‘Enter’
'延时 1 秒
'键盘 按一次 ‘Enter’
'键盘 按一次 ‘Up‘
'延时 0.5秒
'键盘 按一次 ‘Enter’
'延时 0.1 秒

建议你自己加一个热键,因为你时间循环太短了,按照代码来说,你刚一按开始,如果不能在0。1秒内的时间离开VB程序而找到你要工作的游戏(焦点失去,反正意思你懂哦?)那么,程序会自动在按“enter"而我把开始与结束放在一个command1里了,这样一来又等于按了一下结束`````
要不你自己多加一结束按钮吧,要不自己去设个热键,热键百度去查吧/。