keybd_event 能实现按下5秒不放吗?
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const KEYEVENTF_KEYUP = &H2
Private Sub Command2_Click()
Dim a
keybd_event vbKeySpace, 0, 0, 0 '按下空格
keybd_event vbKeySpace, 0, KEYEVENTF_KEYUP, 0 '松开空格
End Sub
成功实现模拟按键空格了
现在我想中间加个延时效果,实现按空格5秒后松掉
用过sleep 5000
程序假死5秒后没下文了 空格只出来一个
结果总是失败,直接把keybd_event vbKeySpace, 0, KEYEVENTF_KEYUP, 0
删掉
他也只能按一个空格然后弹起
请问这样才能按下空格5秒不放?
[解决办法]
当然能,你发送按下消息,然后在延迟5秒,然后再发送弹起消息即可。
[解决办法]
Private Sub Command2_Click() Timer1.Interval = 200 Timer2.Interval = 5000 Timer1.Enabled = True Timer2.Enabled = TrueEnd SubPrivate Sub Form_Load() Timer1.Enabled = False Timer2.Enabled = FalseEnd SubPrivate Sub Timer1_Timer() keybd_event vbKeySpace, 0, 0, 0 '按下空格 keybd_event vbKeySpace, 0, KEYEVENTF_KEYUP, 0 '松开空格End SubPrivate Sub Timer2_Timer() Timer1.Enabled = False Timer2.Enabled = FalseEnd Sub