注册 登录
编程论坛 C# 论坛

C#EnumChildWindows无法枚举所有子窗口的解决方法

ChenghongWu 发布于 2013-12-05 16:24, 740 次点击
程序代码:
            string WinClassName = "Itasca2Manager";
            IntPtr myIntPtr = FindWindow(WinClassName, null);
            Console.WriteLine("主窗体的句柄为:" + myIntPtr.ToInt32());
            bool S = EnumChildWindows(myIntPtr, callback, IntPtr.Zero);
            for (int i = 0; i < listWnd.Count; i++)
            {
                Console.WriteLine("第{0}子窗口的句柄为{1}",i+1, listWnd[i]);
            }
2 回复
#2
ChenghongWu2013-12-05 16:26
如果事先把程序打开的话,在运行程序可以将所有的子窗口的句柄求出;
但是,如果采用WinExec(filePath, SW_MAXIMIZE);打开的话,只能获取部分子窗口的句柄,其中同类名的子窗口只能获得第一个窗口的句柄;
感觉挺莫名其妙的?
#3
ChenghongWu2013-12-05 16:32
加入System.Threading.Thread.Sleep(1000);//暂停一秒 就可以解决了
1