如何在 C# 中的控制台应用程序中设置鼠标光标的位置?
Posted
技术标签:
【中文标题】如何在 C# 中的控制台应用程序中设置鼠标光标的位置?【英文标题】:How do I set the position of the mouse cursor from a Console app in C#? 【发布时间】:2011-10-06 16:10:10 【问题描述】:我找到了很多关于如何在 C# windows forms 项目中设置鼠标位置的文章 - 我想在控制台应用程序中执行此操作。如何在 C# windows console 应用程序中设置绝对鼠标位置?
谢谢!
提示:不是Console.setCursorPosition,只是设置文本光标在控制台中的位置。
【问题讨论】:
为什么您的控制台应用程序需要设置 Windows 鼠标光标的位置?至少可以说,这是一种非常不寻常的情况。 @Cody 公平地说,很少次您应该控制鼠标 - 即使它是 Windows 应用程序也会很奇怪 :) 既然你有解决方案,你能用更多的代码分享它吗?我正在尝试做同样的事情,但我对 C# 不是很有经验 【参考方案1】:这是一个旧线程,但为了完成它可以这样做......
use System.Runtime.InteropServices;
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
然后在方法中您希望的任何位置,例如
SetCursorPos(500, 500);
【讨论】:
【参考方案2】:在您的控制台应用程序中,添加对 System.Windows.Forms.dll 的引用并使用您读过的其他技术。控制台与 Windows exe 的选择仅影响 PE 标头(可能是默认代码模板,但您可以轻松破解);您仍然可以在控制台 exe 中使用完整的框架。
您要控制的鼠标在窗口中,而不是控制台中。
【讨论】:
【参考方案3】:您可以简单地分配给Cursor.Position
。
但是,在控制台应用程序中,您需要添加对 WinForms 程序集的引用,因为默认情况下控制台应用程序项目不包含对 WinForms 的引用。
您需要添加System.Windows.Forms
和System.Drawing
,后者才能访问Point
类。
【讨论】:
请注意,这仅在您首先向控制台应用程序添加对System.Windows.Forms
库的引用时才有效。 (话又说回来,控制台应用程序不应该首先弄乱 Windows 光标......)
哦,我明白了。编辑:C# 没有找到 System.Windows.Forms。
@Cody 好吧,我想当然地认为任何使用 System.Windows.Forms
中的东西的人都会添加对它的引用!
这个问题一开始是说他找到了很多关于如何从WinForms应用程序执行此操作的文章,但不知道如何从控制台应用程序执行此操作。我已经学会了不要把这里的任何事情视为理所当然......
首先从文件浏览器窗口添加一个引用,然后你可以在你的主类中使用 System.Windows.Forms【参考方案4】:
修复了 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);
【讨论】:
以上是关于如何在 C# 中的控制台应用程序中设置鼠标光标的位置?的主要内容,如果未能解决你的问题,请参考以下文章