
正文
vb.net连续发送按键 连续发消息代码vbs
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
求教一下,用VB上怎么设置自动键盘按键,例如,按T,123456.又换回T.123456 等于无限循环.直到按结束.谢谢
通过keybd_enent来模拟键盘发送,用getasynckeystate来获得实际的按键,设置程序终止的热键。具体实现如下:
Private Declare Sub Sleep Lib "KERNEL32" (ByVal dwMilliseconds As Long)
'延时
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
'键盘按键
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
'判断键盘按键
Private Sub xysay(abc As String)
'模拟键盘发送字符串
Dim abclen As Integer
abclen = Len(abc)
i = 1
Do While i = abclen
X = Mid(abc, i, 1)
i = i + 1
Call keybd_event(Asc(X), 0, 0, 0)
Sleep 50
doevents
Loop
End Sub
Private Sub Timer1_Timer()
'添加一个timer1,设置Timer1.Interval = 10
'设置退出键为ESC
If GetAsyncKeyState(27) Then
End
End If
End Sub
Private Sub Command1_Click()
'循环发送指定的字符串
Do While True
Call xysay("T.123456")
Loop
End Sub
相关问答
Q1: vb.net怎么无限循环模拟按键
要求不多的话,完全可以用按键精灵的,你用vb.net去实现的话,反而啰嗦了。。。
Q2: VB.net 怎么制作按键连发功能
用API函数,以下代码Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As LongPrivate Const WS_EX_LAYERED = H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = H2
Private Const LWA_COLORKEY = H1Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOPMosT = -1
Private Const SWP_NOMOVE = H2
Private Const SWP_NosIZE = H1
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_KEYDOWN = H100
Const WM_KEYUP = H101
Const WM_CHAR = H102
Const VK_F1 = H70
Private Sub SendF1(hwnd) '调用这个过程即可对目标窗体发送F1键
Call PostMessage(hwnd, WM_KEYDOWN, VK_F1, 0)
Call PostMessage(hwnd, WM_KEYUP, VK_F1, 0)
End Sub这里是发送F1的实例,各个按键对应的虚拟键码,要到网上查
Q3: VB怎么向指定进程发送按键消息
实现方法如下:
1、如果有窗口,使用API sendmessage 函数向主窗口发送消息。
2、使用键盘Hook模拟发送一个全局按键消息。
3、打开进程,使用汇编注入输入函数
Q4: vb.net的,按键连续触发事件,比如,按着键不放,音量增大。
1.定义变量记录键是否被按下,按下的累计时间
Dim 按下A键 As Boolean
Dim 按下A键时间 As Integer
2.添加一个TextBox1用于接收键盘事件,或者直接用窗体的键盘事件(确保KeyPreview为True)
在KeyDown事件中添加如下代码:
If e.Keycode = keys.A Then 按下A键 = True
在KeyUp事件中添加如下代码:
If e.Keycode = keys.A Then 按下A键 = False
3.添加一个Timer1控件,调整Timer1的Interval来决定按键频率,记得要把Timer1.Enable开启
在Tick事件中添加如下代码:
If 按下A键 = True
按下A键时间+=1
Call 音量设置(按下A键时间 * 10)
End If
PS: 按下的秒数 = 按下A键时间*Timer1.Interval / 1000
vb.net连续发送按键的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于连续发消息代码vbs、vb.net连续发送按键的信息别忘了在本站进行查找喔。





