在C#和.Net内核中设置鼠标位置

在C#和.Net内核中设置鼠标位置,c#,linux,windows,.net-core,mouse,C#,Linux,Windows,.net Core,Mouse,我正在尝试从一个运行在Windows和Linux上的console.NET核心应用程序设置鼠标光标位置。是否有任何API可以让我在两个操作系统上设置位置?使用user32.dll中的GetCursorPos可以在具有.NET内核的Windows上获取鼠标光标位置 请参见此示例: class Program { [DllImport("user32.dll")] private static extern bool GetCursorPos(out Point lpPoint);

我正在尝试从一个运行在Windows和Linux上的console.NET核心应用程序设置鼠标光标位置。是否有任何API可以让我在两个操作系统上设置位置?

使用
user32.dll中的
GetCursorPos
可以在具有.NET内核的Windows上获取鼠标光标位置

请参见此示例:

class Program
{
    [DllImport("user32.dll")]
    private static extern bool GetCursorPos(out Point lpPoint);

    private static void Main()
    {
        Point mouse = default;
        if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
        {
            GetCursorPos(out mouse);
        }
        else
        {
            // How to do on Linux and OSX?
        }
        Console.WriteLine($"Mouse X:{mouse.X} Y:{mouse.Y}");
    }
}

如果您想下载此示例项目进行测试,请放心:

Linux无法很好地设置鼠标位置,因为驱动程序AFAIKI说这不太可能。您可能需要确定您在哪个平台上,并使用PInvoke调用相应的系统函数。对于Linux,我怀疑根据使用的GUI,调用会有所不同……我也这么认为,有没有X11函数可以做到这一点?