zoukankan      html  css  js  c++  java
  • C# 根据父窗口的标题和子窗口的类名返回子窗口的句柄

    很老的项目中的代码,现在也想不起来为什么要这么写了。

            [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;
    
    
    
            }
  • 相关阅读:
    string类的方法
    引用
    面向对象之多态性(基类引用可以指向子类)
    SQL Server、Oracle数据库排序空值null问题解决办法(转)
    远程计算机已结束连接解决方法
    GUID自增ID表关联比较
    第四种行转列
    SQL简体转繁体互换(常用汉字词组)
    CSS基本布局16例
    Dojo Javascript 编程规范
  • 原文地址:https://www.cnblogs.com/T-ARF/p/12159261.html
Copyright © 2011-2022 走看看