在我的程序中,我试图找到窗口上的元素,该元素由另一个父窗口创建。我想找到特定按钮并单击它。例如,我选择了浏览器的“设置”窗口。以下代码:
IntPtr hwNd = FindWindow("MyBrowserClass", "Settings");
List<IntPtr> result = new List<IntPtr>();
GCHandle listHandle = GCHandle.Alloc(result);
try
{
Win32Callback childProc = new Win32Callback(EnumWindow);
EnumChildWindows(hwNd, childProc, GCHandle.ToIntPtr(listHandle));
uint errorCode = GetLastError();
}
finally
{
if (listHandle.IsAllocated)
listHandle.Free();
}
return result;
我收到了GetLastError() = 1008
ERROR_NO_TOKEN。我看了间谍++,窗口样式是:
WS_CAPTION | WS_VISIBLE | WS_OVERLAPPED | WS_SYSMENU | WS_CLIPCHILDREN | WS_CLIPSIBLINGS
扩展样式是:
WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHT_SCROLLBAR | WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE
如何获取其他窗口的子窗口的控件?