C#获取目标窗体句柄

 时间:2024-10-25 05:49:48

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

  • DOS命令操作sql server 2000数据库
  • 华硕固件下优酷路由宝的配置方法
  • vscode如何修改标题模式呢?
  • 如何使用MobaXterm扫描网络和端口?
  • 红米如何开空调遥控器?
  • 热门搜索
    关于春节手抄报的内容 红旗渠精神手抄报 手抄报模板设计 我爱爸爸妈妈手抄报 文明安全手抄报 历史手抄报图片大全 汉字王国手抄报 感恩主题手抄报 六年级上册手抄报 有关保护环境的手抄报