10

我找到了很多关于如何在 C# windows窗体项目中设置鼠标位置的文章 - 我想在控制台应用程序中执行此操作。如何从 C# Windows控制台应用程序设置绝对鼠标位置?

谢谢!

提示:不是 Console.setCursorPosition,它只设置文本光标在控制台中的位置。

4

4 回答 4

13

这是一个旧线程,但为了完成它可以这样做......

use System.Runtime.InteropServices;

[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);

然后在方法中您希望的任何位置,例如

  SetCursorPos(500, 500);
于 2016-03-16T19:58:54.760 回答
5

在您的控制台应用程序中,添加对 System.Windows.Forms.dll 的引用并使用您读过的其他技术。控制台与 Windows exe 的选择仅影响 PE 标头(可能是默认代码模板,但您可以轻松破解);您仍然可以在控制台 exe 中使用完整的框架。

您要控制的鼠标位于窗口中,而不是控制台中。

于 2011-07-16T08:33:59.450 回答
3

您可以简单地分配给Cursor.Position.

但是,在控制台应用程序中,您需要添加对 WinForms 程序集的引用,因为默认情况下控制台应用程序项目不包含对 WinForms 的引用。

您将需要添加System.Windows.Formsand System.Drawing,后者才能访问Point该类。

于 2011-07-16T08:32:59.007 回答
2

修复了 Chaz unswer 中的小错误:

using System.Runtime.InteropServices;


namespace ConsoleImageWorker
{
    public static class Mouse
    {

        [DllImport("user32.dll")]
        static extern bool SetCursorPos(int X, int Y);

        public static void SetCursorPosition(int x, int y)
        {
            SetCursorPos(x, y);
        }
    }
}

之后在任何课程中,您都可以调用:

Mouse.SetCursorPosition(100, 100);
于 2020-02-04T11:11:17.720 回答