命名空间
using System.Runtime .InteropServices;
声明部分
Point p; /// <summary> /// 获取鼠标的坐标 /// </summary> /// <param name="p">获取到的坐标结构</param> /// <returns>返回获取鼠标的坐标是否成功</returns> [DllImport("user32.dll")] private static extern bool GetCursorPos(out Point p); /// <summary> /// 根据坐标获取窗体的句柄 /// </summary> /// <param name="p">坐标结构体</param> /// <returns>返回窗体的句柄</returns> [DllImport("user32.dll")] private static extern IntPtr WindowFromPoint(Point p);
主要代码
private void timer1_Tick(object sender, EventArgs e) { if (GetCursorPos(out p)) { //获取鼠标处的window的handle IntPtr hwndCurWindow = WindowFromPoint(p); //转为16进制显示 this.label1.Text = string.Format("句柄:{0}", hwndCurWindow.ToString("X")); } }