怎样用VB间隔几秒按下一个键???

2025-12-17 12:52:30
推荐回答(5个)
回答1:

在Form1中添加四个控件:timer控件,combo控件(下拉式列表),两个button控件.只需将以下代码拷过去就能实现楼主的功能啦!

Private Sub Command1_Click()
'设定时间间隔为1秒
Timer1.Interval = 1000
End Sub

Private Sub Command2_Click()
Timer1.Interval = 0
End Sub

Private Sub Form_Load()
Dim str As Variant
Dim i As Integer
'初始化一些数据
Combo1.Text = "请选择您要模拟的按键名称"
Command1.Caption = "开始模拟按键"
Command2.Caption = "停止模拟按键"
'把你想要模拟的按键全部添加到以下这个数组中
str = Array("A", "B", "C", "D", "E", "F", "G", "H", "i", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
For i = 0 To 25
Combo1.AddItem str(i)
Next
End Sub

Private Sub Timer1_Timer()
SendKeys Combo1.Text
End Sub

回答2:

'你这样按键不太正确,应添加按下及松开两个动作。
'所以声明部分应加上以下函数,然后复制代码部分就可以了。
'用法是:你在combox中选择一个按键,马上就会有按键动作。

'====声明部分====
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2

'====代码部分====
Private Sub Timer1_Timer()
keybd_event Val(combo1.list(combox1.listindex)), 0, KEYEVENTF_EXTENDEDKEY, 0 '按下键
Sleep 100
keybd_event Val(combo1.list(combox1.listindex)), 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0 '松开键
End Sub

回答3:

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2

'====代码部分====
Private Sub Timer1_Timer()
keybd_event Val(combo1.list(combox1.listindex)), 0, KEYEVENTF_EXTENDEDKEY, 0 '按下键
Sleep 100
keybd_event Val(combo1.list(combox1.listindex)), 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0 '松开键
End Sub

回答4:

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub Command2_Click()
Combo1.Clear
Combo1.AddItem "ab"
Combo1.AddItem "1bzwer5"

End Sub

Private Sub Timer1_Timer()
Static i
If Combo1.Text = "" Then Exit Sub
i = (i Mod Len(Combo1.Text)) + 1
Call keybd_event(Asc(UCase(Mid(Combo1.Text, i, 1))), 0, 0, 0)
End Sub

Private Sub Command1_Click()
Timer1.Enabled = True
Timer1.Interval = 5000
End Sub

回答5:

在窗体上放一个TIMER控件 然后在timer控件里面写sendkeys("你要按下的建名")