C# 获取窗口(控件)句柄,名称,标题,根据句柄获得该对象

//声明

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

 


提示:以下是本篇文章正文内容,下面案例可供参考

一、主要内容?

句柄的获取,句柄名称的获取,句柄像控件的转化

二、使用步骤

1.引入方法

代码如下(示例):

  //获取窗口标题
        [DllImport("user32", SetLastError = true)]
        private static extern int GetWindowText(
            IntPtr hWnd,//窗口句柄
            StringBuilder lpString,//标题
            int nMaxCount //最大值
            );

        //获取类的名字
        [DllImport("user32.dll")]
        private static extern int GetClassName(
            IntPtr hWnd,//句柄
            StringBuilder lpString, //类名
            int nMaxCount //最大值
            );

        //根据坐标获取窗口句柄
        [DllImport("user32")]
        private static extern IntPtr WindowFromPoint(
        Point Point  //坐标
        );

2.调用

代码如下(示例):

1.根据位置获取窗口句柄:    IntPtr formHandle = WindowFromPoint(p);//得到窗口句柄  p为当前位置(Point)            
                          StringBuilder title = new StringBuilder(256);
2.根据句柄获取窗口标题:    GetWindowText(formHandle, title, title.Capacity);//得到窗口的标题
                          StringBuilder className = new StringBuilder(256);
2.根据句柄获取窗口类的名字:GetClassName(formHandle, className, className.Capacity);//得到窗口的类的名字
1.根据句柄获得其对象,此处以Button为例子:
            string clsName = className.ToString().ToLower();
            if (clsName.Contains("button") || clsName.Contains("tbitbtn"))
            {
                Button btn = (Button)Control.FromHandle(formHandle);//12.16
            }

总结

总的来说可根据的API较少,资料零散

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值