嘿,我只是想弄清楚怎么才能把它一直写着:
Window 00211286 "“QWidget

用绿色突出显示的是我试图用下面的代码查找的内容:

目前,我有以下内容:
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWndParent As IntPtr, ByVal hWndChildAfter As Integer, ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As IntPtr) As IntPtr
Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As IntPtr) As IntPtr
Public Declare Function SendMessageLong& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Public Const WM_CHAR = &H102
Private Const BM_CLICK = &HF5
Public Const WM_LBUTTONDBLCLK = &H203
Public Const ENTER_KEY = 13
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim hwndParent As Long = FindWindow(vbNullString, "Genymotion")
Dim hwndButton As Long = FindWindowEx(hwndParent, IntPtr.Zero, "QWidget", "")
hwndButton = FindWindowEx(hwndButton, IntPtr.Zero, "QWidget", "content")
hwndButton = FindWindowEx(hwndButton, IntPtr.Zero, "QWidget", "mainFrame")
hwndButton = FindWindowEx(hwndButton, IntPtr.Zero, "QWidget", "")
hwndButton = FindWindowEx(hwndButton, IntPtr.Zero, "QWidget", "qt_scrollarea_viewport")
hwndButton = FindWindowEx(hwndButton, IntPtr.Zero, "QWidget", "")
End Sub我得到了FindWindow的值,然后也得到了第一个findwindowEx的值……但在那之后,我得到了一个很大的0。然后,对于最后一个findwindowEx,我将获得与在第一个FindWindowEx上相同的数字。
任何帮助都是最好的!
发布于 2013-11-09 01:42:57
试试这个:
Dim hwndParent As Long = FindWindow(vbNullString, "Genymotion") ' Parent Window by Caption
Dim hwndButton As Long = FindWindowEx(hwndParent, IntPtr.Zero, "QWidget", "") ' First Child QWidget
hwndButton = FindWindowEx(hwndParent, hwndButton, "QWidget", "") ' Second Child QWidget
hwndButton = FindWindowEx(hwndButton, IntPtr.Zero, "QWidget", "content") ' "content" QWidget
hwndButton = FindWindowEx(hwndButton, IntPtr.Zero, "QWidget", "mainFrame") ' "mainFrame" QWidget
hwndButton = FindWindowEx(hwndButton, IntPtr.Zero, "QWidget", "") ' First Child QWidget
hwndButton = FindWindowEx(hwndButton, IntPtr.Zero, "QWidget", "qt_scrollarea_viewport") ' "qt_scrollarea_viewport" QWidget
hwndButton = FindWindowEx(hwndButton, IntPtr.Zero, "QWidget", "") ' First Child QWidget请注意这两行中发生的情况:
Dim hwndButton As Long = FindWindowEx(hwndParent, IntPtr.Zero, "QWidget", "") ' First Child QWidget
hwndButton = FindWindowEx(hwndParent, hwndButton, "QWidget", "") ' Second Child QWidget第一行获取句柄为001816EC的第一个QWidget。在第二行中,我们使用相同的父句柄,但我们将先前找到的小部件的句柄传递给第二个参数"hWndChildAfter“。这将获取句柄为0011686A的第二个QWidget。这两个窗口是彼此的“兄弟”。
https://stackoverflow.com/questions/19507460
复制相似问题