如何在C#中从控制台应用程序设置鼠标光标的位置?

如何在C#中从控制台应用程序设置鼠标光标的位置?,c#,console-application,cursor-position,mouse-position,C#,Console Application,Cursor Position,Mouse Position,我找到了许多关于如何在C#windows窗体项目中设置鼠标位置的文章-我想在控制台应用程序中这样做。如何从C#windows控制台应用程序设置鼠标绝对位置 谢谢 提示:仅设置文本光标在控制台中的位置的不是Console.setCursorPosition。您可以简单地将其指定给 但是,在控制台应用程序中,您需要添加对WinForms程序集的引用,因为默认情况下,控制台应用程序项目不包括对WinForms的引用 您需要添加System.Windows.Forms和System.Drawing,后者

我找到了许多关于如何在C#windows窗体项目中设置鼠标位置的文章-我想在控制台应用程序中这样做。如何从C#windows控制台应用程序设置鼠标绝对位置

谢谢

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

您可以简单地将其指定给

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


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

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


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

这是一个旧线程,但为了完成,可以通过以下方式完成

use System.Runtime.InteropServices;

[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
然后在方法上,无论你想要什么位置,例如

  SetCursorPos(500, 500);

修正了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);

请注意,仅当您首先将对
System.Windows.Forms
库的引用添加到控制台应用程序时,此操作才有效。(再说一遍,控制台应用程序一开始就不应该与Windows光标发生冲突……)哦,我明白了。编辑:C#找不到System.Windows.Forms。@科迪:好吧,我想当然地认为,任何在
System.Windows.Forms
中使用某种东西的人都会添加对它的引用!问题一开始就明确地说,他发现了许多关于如何从WinForms应用程序中执行此操作的文章,但不知道如何从控制台应用程序中执行此操作。我已经学会了在这里不要想当然……首先从文件浏览器窗口添加一个引用,然后可以将using System.Windows.Forms放在主类中为什么控制台应用程序需要设置Windows鼠标光标的位置?至少可以说,这是一种非常不寻常的情况。@Cody公平地说,很少有时候你应该控制鼠标-即使它是windows应用程序也会很奇怪:)既然你有了解决方案,你能用更多的代码共享它吗?我也在尝试做同样的事情,但是我对C语言不是很有经验#