我找到了很多关于如何在 C# windows窗体项目中设置鼠标位置的文章 - 我想在控制台应用程序中执行此操作。如何从 C# Windows控制台应用程序设置绝对鼠标位置?
谢谢!
提示:不是 Console.setCursorPosition,它只设置文本光标在控制台中的位置。
我找到了很多关于如何在 C# windows窗体项目中设置鼠标位置的文章 - 我想在控制台应用程序中执行此操作。如何从 C# Windows控制台应用程序设置绝对鼠标位置?
谢谢!
提示:不是 Console.setCursorPosition,它只设置文本光标在控制台中的位置。
这是一个旧线程,但为了完成它可以这样做......
use System.Runtime.InteropServices;
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
然后在方法中您希望的任何位置,例如
SetCursorPos(500, 500);
在您的控制台应用程序中,添加对 System.Windows.Forms.dll 的引用并使用您读过的其他技术。控制台与 Windows exe 的选择仅影响 PE 标头(可能是默认代码模板,但您可以轻松破解);您仍然可以在控制台 exe 中使用完整的框架。
您要控制的鼠标位于窗口中,而不是控制台中。
您可以简单地分配给Cursor.Position
.
但是,在控制台应用程序中,您需要添加对 WinForms 程序集的引用,因为默认情况下控制台应用程序项目不包含对 WinForms 的引用。
您将需要添加System.Windows.Forms
and System.Drawing
,后者才能访问Point
该类。
修复了 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);