vb有3个timer可以同时工作吗

vb有3个timer可以同时工作吗,第1张

可以。

_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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11460445.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存