基于C#实现鼠标位置窗口句柄获取及桌面嵌入
C# 获取鼠标位置窗口句柄并实现程序嵌入桌面
介绍如何使用 C# 获取当前鼠标位置的窗口句柄,并将程序嵌入到桌面。
获取鼠标位置窗口句柄
C# 中可以使用 [DllImport("user32.dll")]
属性调用 Windows API 函数 GetCursorPos
和 WindowFromPoint
来获取鼠标位置的窗口句柄。
[DllImport("user32.dll")]
static extern bool GetCursorPos(out POINT lpPoint);
[DllImport("user32.dll")]
static extern IntPtr WindowFromPoint(POINT Point);
public struct POINT
{
public int X;
public int Y;
}
// 获取鼠标位置窗口句柄
POINT mousePosition;
GetCursorPos(out mousePosition);
IntPtr hWnd = WindowFromPoint(mousePosition);
程序嵌入桌面
实现程序嵌入桌面,可以使用 SetParent
函数将程序窗口设置为桌面窗口的子窗口。
[DllImport("user32.dll")]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
// 获取桌面窗口句柄
IntPtr hWndDesktop = FindWindow("Progman", null);
// 将程序窗口嵌入桌面
SetParent(this.Handle, hWndDesktop);
注意事项
- 需要添加
using System.Runtime.InteropServices;
命名空间。 - 程序嵌入桌面后,可能会影响其他程序的正常使用。
28KB
文件大小:
评论区