Option ExplicitPrivate Sub Form_Load() Timer1.Interval = 1000 Timer1.Enabled = True End SubPrivate Sub Timer1_Timer() On Error Resume Next SendKeys "1" End Sub
Module1Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _ ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)Public Const KEYEVENTF_KEYUP = &H2 Public Const KEYEVENTF_KEYDOWN = 0Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Form1 Private Sub Timer1_Timer() If GetAsyncKeyState(vbKeyF9) <> 0 Or GetAsyncKeyState(vbKeyPageUp) <> 0 Then Do Until GetAsyncKeyState(vbKeyF10) <> 0 Or GetAsyncKeyState(vbKeyPageDown) <> 0 keybd_event vbKey1, 0, KEYEVENTF_KEYDOWN, 0 keybd_event vbKey1, 0, KEYEVENTF_KEYUP, 0 DoEvents Sleep 1000 Loop End If End Sub Timer是循环check快捷键的,F9/PageUp开始,F10/PageDown停止,可以修改。 窗体非活动状态,快捷键仍然可用。按键频率Sleep控制。我用此方法做过自动拾取物品的小程序,模拟其它按键。 如果不可用,可能是被游戏屏蔽了。
Option ExplicitPrivate Sub Form_Load()
Timer1.Interval = 1000
Timer1.Enabled = True
End SubPrivate Sub Timer1_Timer()
On Error Resume Next
SendKeys "1"
End Sub
keybd_event Asc(Chr(j)), 0, KEYEVENTF_KEYUP, 0
偷点懒!lol!
用Sendmessage findwindow 等API能解决吗?
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)Public Const KEYEVENTF_KEYUP = &H2
Public Const KEYEVENTF_KEYDOWN = 0Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Form1
Private Sub Timer1_Timer()
If GetAsyncKeyState(vbKeyF9) <> 0 Or GetAsyncKeyState(vbKeyPageUp) <> 0 Then
Do Until GetAsyncKeyState(vbKeyF10) <> 0 Or GetAsyncKeyState(vbKeyPageDown) <> 0
keybd_event vbKey1, 0, KEYEVENTF_KEYDOWN, 0
keybd_event vbKey1, 0, KEYEVENTF_KEYUP, 0
DoEvents
Sleep 1000
Loop
End If
End Sub
Timer是循环check快捷键的,F9/PageUp开始,F10/PageDown停止,可以修改。
窗体非活动状态,快捷键仍然可用。按键频率Sleep控制。我用此方法做过自动拾取物品的小程序,模拟其它按键。
如果不可用,可能是被游戏屏蔽了。