EnumChildWindows失败,无法显示父窗口的子对话框

时间:2015-03-05 01:54:55

标签: c# winapi window controls

在我的程序中,我试图找到窗口上的元素,该元素由另一个父窗口创建。我想找到特定按钮并单击它。例如,我选择了浏览器的“设置”窗口。以下代码:

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

如何获取其他窗口的子窗口的控件?

0 个答案:

没有答案