获取屏幕上的鼠标位置(无应用程序窗口)WPF



>我创建的应用程序将在后台工作。在按钮单击上,我想在鼠标所在的位置显示窗口。我必须将其相对于整个屏幕而不是某个窗口。

在所有帖子中,都会有人插入使用:

System.Windows.Forms.Control.MousePosition;

但我不能在 wpf 中使用它。

对我来说,它甚至可以从命令行或电源外壳中获取。

我知道有两种解决方案,一种,可以说最糟糕的一种是根据寡妇位置和光标窗口位置进行计算。

另一个,使用PInvoke。

static class Cursor {
internal struct POINT {
public int X;
public int Y;
}
[DllImport( "user32.dll" )]
static extern bool GetCursorPos ( out POINT lpPoint );
[DllImport( "user32.dll" )]
static extern bool SetCursorPos ( int X, int Y );
public static POINT Position {
get {
GetCursorPos( out POINT point );
return point;
}
set {
SetCursorPos( value.X, value.Y );
}
}
}

最新更新