2011-11-09 215 views
7

我需要能够将鼠标位置设置为屏幕/窗口的中间位置。 我该怎么做?设置鼠标位置

+2

为什么不能在用户只需将光标移动有自己呢? – dreamlax

+1

我认为这是没有直接做法的事情之一,因为它不是一个非常用户友好的事情。 – dreamlax

+0

我不认为将鼠标位置设置到某个特定的位置会非常有用...但是,我再也不太确定您想要的程序的外观... – Gabe

回答

9

该文档似乎表明CGDisplayMoveCursorToPointCGWarpMouseCursorPosition将做你以后的事情。

编辑:以符合您的最新评论,我会进一步建议CGWarpMouseCursorPosition,关于该文档的状态:

例如,这个功能经常被用来移动光标位置 回中心屏幕上的游戏不希望光标 被显示边缘固定。

+0

刚刚尝试过。感谢您的帮助,但是这个功能似乎在我的游戏中覆盖了我的鼠标处理程序。 –

+2

@ChaseWalden,通过“覆盖”你的意思是什么?他们不再被称为? –

+0

是啊。它可能会响应2-3帧,然后锁定。 –

-1

您可以使用[NSEvent mouseLocation]来获取光标的当前位置,但我找不到任何直接将位置设置到屏幕中心的方法。

+0

那么你为什么回答而不是评论? – Dani

+0

我犯了一个错误,并发布了一个答案,认为这是一个有关iPhone的问题,然后我意识到我的错误,并迅速修复了一个新的答案 – Gabe

4

上周我在做类似的事情。

CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState); 
    CGEventRef mouse = CGEventCreateMouseEvent (NULL, kCGEventMouseMoved, CGPointMake(X, Y), 0); 
    CGEventPost(kCGHIDEventTap, mouse); 
    CFRelease(mouse); 
    CFRelease(source); 

只需设置X和Y

编辑:

#include <ApplicationServices/ApplicationServices.h> 
+0

这(至今)对我很好。我在一个应用程序中使用[NSCursor hide]来启动混洗的全屏视频(将机器设置为没有用户交互的安装)。这样做可以防止鼠标被看到或悬停在菜单栏上。 – viperld002