C#获取目标窗体句柄

2025-10-03 12:49:22

1、打开VS,创建如图一个窗体,再加入一个定时器控件Timer

C#获取目标窗体句柄

2、引入:using System.Runtime.InteropServices;命名空间

然后全部代码如下。

3、[DllImport("user32.dll")]        public static extern int GetCursorPos(ref PointAPI lpPoint);  //获取鼠标坐标,该坐标是光标所在的屏幕坐标位置

   

        [DllImport("user32.dll")]        public static extern int WindowFromPoint(int xPoint,int yPoint);  //指定坐标处窗体句柄

        [DllImport("user32.dll")]        public static extern int GetWindowText(int hwnd,StringBuilder lpString,int nMaxCount);//获取窗体标题名称

        [DllImport("user32.dll")]          public static extern int GetClassName(int hwnd,StringBuilder lpstring,int nMaxCount); //获取窗体类名称        [StructLayout(LayoutKind.Sequential)]        public struct PointAPI         {           public int x;           public int y;        }        bool bt = false;        private void button1_Click(object sender, EventArgs e)        {            if (!bt)            {                this.button1.Text = "关闭";                timer1.Enabled = true;                timer1.Start();                bt = true;            }            else             {                this.button1.Text = "开启";                timer1.Enabled = false;                timer1.Stop();                bt = false;            }                  }

        PointAPI pi = new PointAPI();        public void PointA()        {                   GetCursorPos(ref pi);            int hwnd = WindowFromPoint(pi.x, pi.y);            StringBuilder name = new StringBuilder(255);            StringBuilder className = new StringBuilder(255);            GetWindowText(hwnd, name, 255);            GetClassName(hwnd,className,255);            textBox1.Text = name.ToString();            textBox2.Text = className.ToString();

                }

        private void Form1_Load(object sender, EventArgs e)        {            timer1.Enabled = false;            timer1.Stop();        }

        private void timer1_Tick(object sender, EventArgs e)        {            PointA();        }                 }

4、运行后,光标所在位置即可显示当前所在窗体的句柄名称,句柄类名称。有了句柄就可以做很多事情!

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢