将Cursor设置为所需的点c#
本文关键字:Cursor 设置 | 更新日期: 2023-09-27 18:19:29
我试图根据kinect中的手点移动光标,我可以获得真实坐标。我的意思是,我可以在屏幕上移动图像,但我希望根据我的手坐标来确定真实光标。我尝试了Console.SetCursor(x,y),但它给出了一个例外。我也尝试下载windows窗体dll,但我找不到4.00版本。有什么简单的方法可以将光标设置在所需的位置吗?(顺便说一句,它正在工作,正如我所说,Console.SetcursorPosition不工作?)
您没有提供太多关于应用程序的信息,但我怀疑您只需要从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);