VB根据句柄发送文字

来源:百度知道 编辑:UC知道 时间:2024/06/05 10:25:33
比如目标句柄是12345678,目标窗口caption是Form1,目标上有一个text1.text,我想在那个文本框里输入hello
我代码:
Private Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Const WM_SETTEXT = &HC

Private Sub Command1_Click()
Dim h1 As Long
Dim h2 As Long
h1 = FindWindow(vbNullString, "Form1")
h2 = FindWindowEx(h1,h12345678, "text1.text", vbNullString)
SendMessage h2, WM_SETTEXT, 0, ByVal CStr("hello")
End Sub
不知道哪里错了帮我改正下,谢谢!(我知道用sendkeys更简单,但我想用这个方法)

Private Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Const WM_SETTEXT = &HC

Private Sub Command1_Click()
Dim h1 As Long
Dim h2 As Long
h1 = FindWindow("ThunderFormDC", "Form1") '第一个参数ThunderFormDC是VB的窗体类,如果要查找其他语言写的程序这个需要修改.
h2 = FindWindowEx(h1, 0, "ThunderTextBox", vbNullString)'第三个参数ThunderTextBox是VB的文本框类,如果要查找其他语言写的程序这个需要修改.
SendMessage h2, WM_SETTEXT, 0, ByVal "hello"
End Sub