vb 模拟键盘事件

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:25:28
Private Sub Form_Load()
Dim hwnd As Long
Dim str1 As String * 256
hwnd = FindWindow(vbNullString, "无标题 - 记事本")
GetWindowText hwnd, str1, 255
Do While hwnd <> 0
hwnd = GetNextWindow(hwnd, 2)
GetWindowText hwnd, str1, 255
If (InStr(1, str1, "textbox", 1) > 0) Then
PostMessage hwnd, WM_KEYDOWN, VK_A, 0&
PostMessage hwnd, WM_CHAR, Asc("A"), 0&
PostMessage hwnd, WM_UP, VK_A, 0&
Exit Do
End If
Loop
End Sub
为什么记事本没反应,请高手指点下.
记事本已经打开了。并且找到了记事本文本框的句柄,可是按键没有反应,为什么。wm_up是wm_keyup

模拟键盘用kb_event最好了,这个api功能很强大,当然sendkeys也可以,用起来相当方便。
你这个我还没试过,GetWindowText应该是获取窗体的text,这样你是找不到文本框的句柄的,除非里面已经打了“textbox”这几个字。我觉得你应该GetClassName,这个是用来获得指定窗口所属的类的类名的,用这个api找到文本框的句柄,然后在发送。

那个太麻烦~
应该用这个方法:
Set A = CreateObject("WScript.Shell")
A.AppActivate "无标题 - 记事本"
A.SendKeys "ABC"
MsgBox "已经向 无标题 - 记事本 发送按键ABC"

建议你看看百科:
http://baike.baidu.com/view/1133305.htm