读书人

keybd_event 能实现按上5秒不放吗

发布时间: 2012-09-06 10:37:01 作者: rapoo

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秒,然后再发送弹起消息即可。
[解决办法]

VB code
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 

读书人网 >VB

热点推荐