是这样的:
通过点击form1中的"暂停播放"(name=M1)菜单,向已经运行的程序replace(replace是运行后的标题)的对话框中的"关闭"按钮发送消息
问题:
1我用findwindow函数取出来的句柄跟spy++取出来的不一样,可我不知道我的findwindow语句出了什么问题?
2另外,sendmessage也不好用,我拿form1中的command1按钮做实验用
   SendMessage Command1.hwnd, WM_LBUTTONDOWN, MK_LBUTTON, ByVal &H10001
    也不能执行该按钮的功能?程序如下:
    
在module1中这样写的Option Explicit
Public Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As LongPublic Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Long, ByVal _
wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPublic Declare Function FindWindowEx Lib "user32" _
Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 _
As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongFunction FindPaterWindowHandle(hwnd_PaterHwnd As Long, cstring_PaterCap As String) As Boolean
    hwnd_PaterHwnd = FindWindow(vbNullString, cstring_PaterCap)
    If (0 <> hwnd_PaterHwnd) Then
        FindPaterWindowHandle = True
    Else
        FindPaterWindowHandle = False
    End If
    End FunctionFunction FindButtonHandle(hwnd_PaterHwnd As Long, cstring_ButtonCap As String) As Boolean
    hwnd_PaterHwnd = FindWindowEx(hwnd_PaterHwnd, 0, vbNullString, cstring_ButtonCap)
    If (0 <> hwnd_PaterHwnd) Then
        FindButtonHandle = True
    Else
        FindButtonHandle = False
    End If
End Function
在form1的菜单中这样写的:
Private Const MK_LBUTTON = &H1
Private Const WM_LBUTTONDOWN = &H201Private Sub Command1_Click()
 MsgBox "消息", , "条件"
End Sub
Private Sub M1_Click()
    Dim hwnd_PaterHwnd As Long
    hwnd_PaterHwnd = FindWindow(vbNullString, "Replace")
    
    If Not FindPaterWindowHandle(hwnd_PaterHwnd, "replace") Then
        MsgBox "无法查找父窗口句柄", , "提示"
    Else
        'MsgBox "已查找到父窗口句柄", , "提示"
    End If
    If Not FindButtonHandle(hwnd_PaterHwnd, "关闭") Then
        MsgBox "无法查找父窗口的按钮句柄", , "提示"
    Else
        'MsgBox "已找到父窗口的按钮句柄", , "提示"
    End If
    
    'MsgBox "开始发送消息", , "提示"
    SendMessage hwnd_PaterHwnd, WM_LBUTTONDOWN, MK_LBUTTON, ByVal &H10001
    MsgBox "JIESHU", , "TISHI"
End Sub