4

App Storeには、Macのカーソルを制御できるアプリがたくさんあります。アプリをiPhoneにインストールし、クライアントソフトウェアをMacにインストールしてから、携帯電話で指を動かしてMacを制御します。 bluetoothを介して。

私の質問は、これはどのように行われるのですか?iOS側ではなく、Mac側です。Macでカーソルの位置をプログラムでどのように変更しますか?

前もって感謝します :)

4

2 に答える 2

9

@ H2C03で述べられているように、を介してそれを行うことができCGWarpMouseCursorPosition()ますが、マウスの位置をワープできるのは250ミリ秒(0.25秒)ごとだけです。これを回避するには、マウスを継続的にワープするために少し余分なコードを追加する必要があります。

NSPoint mouseWarpLocation = NSMakePoint(100, 100);

CGEventSourceRef evsrc = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
CGEventSourceSetLocalEventsSuppressionInterval(evsrc, 0.0);
CGAssociateMouseAndMouseCursorPosition (0);
CGWarpMouseCursorPosition(mouseWarpLocation);
CGAssociateMouseAndMouseCursorPosition (1);
CFRelease(evsrc);
于 2012-10-21T06:36:23.623 に答える
1

CoreGraphicsはそれを行うことができます-具体的には、あなたは関数を探していCGWarpMouseCursorPosition()ます。Quartz(CoreGraphics)は、サービスのドキュメントをここに表示します。

例:カーソルを画面の中央に移動します。

CGDirectDisplayID displayID = CGMainDisplayID();
size_t screenWidth = CGDisplayPixelsWide(displayID);
size_t screenHeight = CGDisplayPixelsHigh(displayID);
CGPoint centerOfScreen = CGPointMake(screenWidth / 2, screenHeight / 2);
CGWarpMouseCursorPosition(centerOfScreen);
于 2012-10-21T06:30:10.800 に答える