'先建立一个工程, 里面有一个按扭, 窗口标题随意. 按扭 文本是 "确定" 在确定单击按扭下写一些代码进行验证, '将此工程编译, 运行.'以下代码在另一工程中...Option Explicit 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 Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Const WM_LBUTTONDOWN = &H201 Private Const WM_LBUTTONUP = &H202 Private Sub Command1_Click() Dim cHwnd As Long cHwnd = FindWindow(vbNullString, "Form1") '将 "Form1" 改为你要发送信息去的窗口的名称.
cHwnd = FindWindowEx(cHwnd, 0, vbNullString, "确定") '确定表示那个窗口中的确定按扭 If cHwnd <> 0 Then PostMessage cHwnd, WM_LBUTTONDOWN, 0&, 3 * 2 ^ 16 + 3 PostMessage cHwnd, WM_LBUTTONUP, 0&, 3 * 2 ^ 16 + 3 PostMessage cHwnd, WM_LBUTTONDOWN, 0&, 3 * 2 ^ 16 + 3 PostMessage cHwnd, WM_LBUTTONUP, 0&, 3 * 2 ^ 16 + 3 End If End Sub
测试的Form1窗口可以,但按有的程序的窗口标题写了后,不可以
有的程序的窗口标题那就是窗口标题写错了.没有找到窗体.Private Sub Command1_Click() Dim cHwnd As Long cHwnd = FindWindow(vbNullString, "Form1") '将 "Form1" 改为你要发送信息去的窗口的名称.
PosMessage
网上有很多这两个api的调用例子。你自己到网上搜,如果下载下来还是搞不定,那给我发私信我帮你看啊
'先建立一个工程, 里面有一个按扭, 窗口标题随意. 按扭 文本是 "确定" 在确定单击按扭下写一些代码进行验证,
'将此工程编译, 运行.'以下代码在另一工程中...Option Explicit
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
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Sub Command1_Click()
Dim cHwnd As Long
cHwnd = FindWindow(vbNullString, "Form1") '将 "Form1" 改为你要发送信息去的窗口的名称.
cHwnd = FindWindowEx(cHwnd, 0, vbNullString, "确定") '确定表示那个窗口中的确定按扭 If cHwnd <> 0 Then
PostMessage cHwnd, WM_LBUTTONDOWN, 0&, 3 * 2 ^ 16 + 3
PostMessage cHwnd, WM_LBUTTONUP, 0&, 3 * 2 ^ 16 + 3
PostMessage cHwnd, WM_LBUTTONDOWN, 0&, 3 * 2 ^ 16 + 3
PostMessage cHwnd, WM_LBUTTONUP, 0&, 3 * 2 ^ 16 + 3
End If
End Sub
Dim cHwnd As Long
cHwnd = FindWindow(vbNullString, "Form1") '将 "Form1" 改为你要发送信息去的窗口的名称.
'可以在此处验证. 如果 cHwnd = 0 表示,你窗口标题错误.没有找到窗体. cHwnd = FindWindowEx(cHwnd, 0, vbNullString, "确定") '确定表示那个窗口中的确定按扭
'这里再一次验证, 如果 cHwnd=0 表示,窗体中没有 标题是 "确定" 的控件.'以上每一个地方的标题都不能错误,如果错误就找不到想要的控件了. If cHwnd <> 0 Then
PostMessage cHwnd, WM_LBUTTONDOWN, 0&, 3 * 2 ^ 16 + 3
PostMessage cHwnd, WM_LBUTTONUP, 0&, 3 * 2 ^ 16 + 3
PostMessage cHwnd, WM_LBUTTONDOWN, 0&, 3 * 2 ^ 16 + 3
PostMessage cHwnd, WM_LBUTTONUP, 0&, 3 * 2 ^ 16 + 3
End If
End Sub
这个没找到