得到了父窗口的句饼,怎么获得子窗口的标题、按扭并执行

解决方案 »

  1.   

    参考 FindWindowEx 和 EnumChildWindows 函数。第一个函数是根据父窗口查找子窗口。 
    第二个函数是根据指定的父窗口枚举子窗口。子窗口的标题用 GetWindowText 函数获得。“....按扭并执行”...?是指模仿单击按钮?如果是因该用 SendMessage 函数发送消息或用 mouse_event 模拟一次鼠标事件。
      

  2.   

    FindWindow+FindWindowEx(父窗口句柄,0,"子窗口类",vbnullstring)
    如:
    FindDownload& = FindWindow("#32770", vbNullString)'找到对话框窗口句柄
    Button1& = FindWindowEx(FindDownload&, 0, "Button", vbNullString)'找到对话框上第一个按钮的句柄
    Button2& = FindWindowEx(FindDownload&, Button1&, "Button", vbNullString)'第2个
    Button3& = FindWindowEx(FindDownload&, Button2&, "Button", vbNullString)'第3个
    Button4& = FindWindowEx(FindDownload&, Button3&, "Button", vbNullString)'第4个等Public Function GetText(Window As Long) As String'windwow即句柄
    'Gets text from specified window.
    Dim Cursor As String, Text As Long
    Text& = SendMessage(Window&, WM_GETTEXTLENGTH, 0&, 0&)
    Cursor$ = String(Text&, 0&)
    Call SendMessageByString(Window&, WM_gettext, Text& + 1, Cursor$)
    GetText$ = Cursor$
    End Function
    如:msgbox getText(Button4&)
    Sub ClickButton(Button As Long)
    'Clicks a button such as OK or Cancel
    Dim ClickIt As Long
    ClickIt& = SendMessage(Button&, WM_KEYDOWN, VK_SPACE, vbNullString)
    ClickIt& = SendMessage(Button&, WM_KEYUP, VK_SPACE, vbNullString)
    End Sub
    如:call ClickButton(Button4&)
      

  3.   

    FindWindowEx + GetWindowText + SendMessage