将Cursor设置为所需的点c#

本文关键字:Cursor 设置 | 更新日期: 2023-09-27 18:19:29

我试图根据kinect中的手点移动光标,我可以获得真实坐标。我的意思是,我可以在屏幕上移动图像,但我希望根据我的手坐标来确定真实光标。我尝试了Console.SetCursor(x,y),但它给出了一个例外。我也尝试下载windows窗体dll,但我找不到4.00版本。有什么简单的方法可以将光标设置在所需的位置吗?(顺便说一句,它正在工作,正如我所说,Console.SetcursorPosition不工作?)

将Cursor设置为所需的点c#

您没有提供太多关于应用程序的信息,但我怀疑您只需要从System.Windows.Forms分配给Cursor.Position。您可能需要添加对System.Windows.Forms的引用才能访问它,具体取决于您拥有的项目类型。

如果你想保持它的轻量级并避免引用WinForms,那么你可以直接使用SetCursorPos

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

只需使用

Cursor.Position = new Point();

您可以在这里找到更多信息

感谢您的提问和回答。

我发现了奇怪而不明显的行为。

允许您使用多监视器(两个或三个监视器)配置,并在应用程序中使用两个窗口。

一个窗口处于活动状态,您可以为第二个窗口设置光标位置。

这两个窗口位于不同的监视器上。

然后,您需要调用SetCursorPos两次!

两次,谁会想到呢?

Firs调用将光标移动到监视器之间的虚拟边界。

只需第二次调用即可将光标移动到第二个窗口所需的位置!

代码示例(实验6小时后):

            SetForegroundWindow(this.Handle); // set second window active
            SendMessage(this.Handle, 0x20, this.Handle, (IntPtr)1); // Send WM_SETCURSOR
            SetCursorPos(400, 600);
            Thread.Sleep(50);
            SetCursorPos(400, 600);