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

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

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

public delegate bool CallBack(int hwnd, int lParam); public delegate bool EnumWindowsProc(int hWnd, int lParam);

List list = new List();

[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);//这里获得控件text

var text = Marshal.PtrToStringAnsi(lpString);

if (!string.IsNullOrWhiteSpace(text))

list.Add(text);//添加到list,如果要获得句柄就新建list添加hWnd

return 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);

参考链接:https://zhidao.baidu.com/question/1575352645104568900.html

https://ask.csdn.net/questions/673027

相关推荐

《月光男孩》:成长也许是世界上最残酷的事
365bet娱乐场客户端

《月光男孩》:成长也许是世界上最残酷的事

📅 06-30 👁️ 3964
湖南省机场列表
beat365官方app安卓版下载

湖南省机场列表

📅 06-29 👁️ 5229
相机什么牌子好?10大相机品牌排行榜
365bet娱乐场客户端

相机什么牌子好?10大相机品牌排行榜

📅 07-01 👁️ 715
讶的解释
速发365网址是多少

讶的解释

📅 08-11 👁️ 3002
电信手机卡申请全攻略:2025年最新套餐推荐与避坑指南
速发365网址是多少

电信手机卡申请全攻略:2025年最新套餐推荐与避坑指南

📅 07-29 👁️ 6767
神奇寶貝 Wiki
beat365官方app安卓版下载

神奇寶貝 Wiki

📅 06-27 👁️ 3186