很老的项目中的代码,现在也想不起来为什么要这么写了。
[DllImport("user32.dll")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll")] public extern static int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount); [DllImport("User32.dll ")] public static extern IntPtr FindWindowEx(IntPtr parent, IntPtr childe, string strclass, string FrmText); [DllImport("user32.dll")] public static extern int EnumChildWindows(IntPtr hWndParent, CallBack lpfn, int lParam); public delegate bool CallBack(IntPtr hwnd, int lParam); /// <summary> /// 根据父窗口的标题和子窗口的类名返回子窗口的句柄 /// </summary> /// <param name="HwndName">子窗口的类名</param> /// <param name="WindowName">父窗口的标题</param> /// <returns></returns> public static IntPtr FindWindowExOrde(string HwndName, string WindowName) { IntPtr HwndId = new IntPtr(); IntPtr hwnd = FindWindow(null, WindowName); IntPtr ChildHwndWindow = FindWindowEx(hwnd, IntPtr.Zero, null, null); var H = EnumChildWindows(hwnd, (x, l) => { StringBuilder sb = new StringBuilder(HwndName.Length + 2); if (x != IntPtr.Zero) { GetClassName(x, sb, sb.Capacity); if (HwndName.Equals(sb.ToString())) { HwndId = x; return true; } } else return false; return true; }, 0); return HwndId; }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/12614.html