您的位置:首页 > 游戏 > 游戏 > C# Winform 已知窗体句柄,如何遍历出所有控件句柄

C# Winform 已知窗体句柄,如何遍历出所有控件句柄

2024/10/6 20:28:58 来源:https://blog.csdn.net/LongtengGensSupreme/article/details/139341728  浏览:    关键词:C# Winform 已知窗体句柄,如何遍历出所有控件句柄

c# windform 已知窗体句柄,如何遍历出所有控件句柄

        public delegate bool CallBack(int hwnd, int lParam);public delegate bool EnumWindowsProc(int hWnd, int lParam); List<string> list = new List<string>();[DllImport("user32.dll")][return: MarshalAs(UnmanagedType.Bool)]public static extern bool EnumChildWindows(IntPtr hwndParent, EnumWindowsProc lpEnumFunc, IntPtr lParam);[DllImport("user32.dll")]public static extern int GetWindowText(int hWnd, IntPtr lpString, int nMaxCount);private void toolStripButton5_Click(object sender, EventArgs e){list.Clear();EnumChildWindows(this.Handle, this.EnumWindowsMethod, IntPtr.Zero);//这里得到了所有的子窗口list.Count;//this.Handle改成你已得到的窗体句柄}private bool EnumWindowsMethod(int hWnd, int lParam){IntPtr lpString = Marshal.AllocHGlobal(200);GetWindowText(hWnd, lpString, 200);//这里获得控件textvar text = Marshal.PtrToStringAnsi(lpString);if (!string.IsNullOrWhiteSpace(text))list.Add(text);//添加到list,如果要获得句柄就新建list添加hWndreturn true;}//public delegate bool CallBack(int hwnd, int lParam);
//public delegate bool EnumWindowsProc(int hWnd, int lParam);
//[DllImport("User32.dll", EntryPoint = "FindWindow", SetLastError = false)]
//public static extern int FindWindow(string lpClassName, string lpWindowName);//[DllImport("user32.dll")]
//[return: MarshalAs(UnmanagedType.Bool)]
//public static extern bool Enumchildwindows(IntPtr hwndParent, EnumWindowsProc lpEnumFunc, IntPtr lParam);
//[DllImport("user32.dll")]
//public static extern int GetWindowText(int hWnd, StringBuilder lpString, int nMaxCount);
//[DllImport("user32.dll")]
//public static extern int EnumThreadWindows(int dwThreadId, CallBack lpfn, int lParam);
//[DllImport("user32.dll")]
//public static extern int EnumWindows(CallBack lpfn, int lParam);
//[DllImport("user32.dll")]
//public static extern int EnumChildWindows(int hWndParent, CallBack lpfn, int lParam);

参考链接:百度安全验证

                  c#已知窗体句柄,如何遍历出所有控件句柄_微软技术-CSDN问答

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com