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

3

我正在尝试从控制台.NET Core应用程序中设置鼠标光标位置,该应用程序将在Windows和Linux上运行。是否有任何API可以让我在两个操作系统上都设置位置?


据我所知,Linux与鼠标位置的设置由于驱动程序的原因不太兼容。 - Sasha
我认为这不太可能。你可能需要确定你所在的平台,并使用PInvoke调用适当的系统函数。而对于Linux,我怀疑调用方式会因使用的GUI而异... - Stevo
我也想到了,有没有任何可以做到这一点的X11函数? - Felipe
1个回答

1

使用.NET Core获取Windows鼠标光标位置是可能的,可以使用user32.dll中的GetCursorPos函数。

请看下面的示例:

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}");
    }
}

如果您想下载此示例项目以进行测试,请随意点击链接:https://github.com/sergiocabral/Sample.CSharpNETCore.GetCursorPosition


原始问题是想要Linux吗? - jjxtra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接