
_B本身对此并无限制,你可以尽管添加,但实际上它会受到你的硬件配置的限制的[不是无效而是影响运行效果]。
_imer的interval属性值以毫秒[千分之一秒]为基本单位,所以,比毫秒级更精确的计时器是无法用此完成的。
v按Q执行↑↓←→键每个按一下
按F5开始F8停止Y键的按下
如果是我说这样,那代码如下:
Private
Declare
Function
GetAsyncKeyState
Lib
"user32"
(ByVal
vKey
As
Long)
As
Integer
Private
Declare
Sub
keybd_event
Lib
"user32"
(ByVal
bVk
As
Byte,
ByVal
Scan
As
Byte,
ByVal
dwFlags
As
Long,
ByVal
dwExtraInfo
As
Long)
Private
Sub
Timer3_Timer()
If
GetAsyncKeyState(vbKeyQ)
Then
'按下Q执行上下左右各按一次
Timer1.Enabled
=
True
End
If
If
GetAsyncKeyState(vbKeyF5)
Then
'按下F5执行每900毫秒按一下Y键
Timer2.Enabled
=
True
End
If
If
GetAsyncKeyState(vbKeyF8)
Then
'按下F8执行停止按Y键
Timer2.Enabled
=
False
End
If
End
Sub
Private
Sub
Form_Load()
Timer1.Interval
=
1000
'1000大约为一秒,最大60000(1分钟),最小1
Timer2.Interval
=
900
'900毫秒
Timer3.Interval
=
10
'此处最好不要修改,是检测你是否按下快捷键
Timer1.Enabled
=
False
Timer2.Enabled
=
False
Timer3.Enabled
=
True
End
Sub
Private
Sub
Timer2_Timer()
Call
keybd_event(89,
0,
0,
0)
Call
keybd_event(89,
0,
KEYEVENTF_KEYUP,
0)
End
Sub
Private
Sub
Timer1_Timer()
Call
keybd_event(38,
0,
0,
0)
Call
keybd_event(38,
0,
KEYEVENTF_KEYUP,
0)
Call
keybd_event(40,
0,
0,
0)
Call
keybd_event(40,
0,
KEYEVENTF_KEYUP,
0)
Call
keybd_event(37,
0,
0,
0)
Call
keybd_event(37,
0,
KEYEVENTF_KEYUP,
0)
Call
keybd_event(39,
0,
0,
0)
Call
keybd_event(39,
0,
KEYEVENTF_KEYUP,
0)
End
Sub
漏了一句:Label1.Visible = True应该是:
Private WithEvents Timer1 As Timer
Private WithEvents Label1 As Label
Private Sub Form_Load()
Set Timer1 = Controls.Add("vb.timer", "Timer1")
Set Label1 = Controls.Add("VB.Label", "Label1")
Timer1.Enabled = True
Timer1.Interval = 1000
Label1.Visible = True
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Time
End Sub
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)