App Storeには、Macのカーソルを制御できるアプリがたくさんあります。アプリをiPhoneにインストールし、クライアントソフトウェアをMacにインストールしてから、携帯電話で指を動かしてMacを制御します。 bluetoothを介して。
私の質問は、これはどのように行われるのですか?iOS側ではなく、Mac側です。Macでカーソルの位置をプログラムでどのように変更しますか?
前もって感謝します :)
App Storeには、Macのカーソルを制御できるアプリがたくさんあります。アプリをiPhoneにインストールし、クライアントソフトウェアをMacにインストールしてから、携帯電話で指を動かしてMacを制御します。 bluetoothを介して。
私の質問は、これはどのように行われるのですか?iOS側ではなく、Mac側です。Macでカーソルの位置をプログラムでどのように変更しますか?
前もって感謝します :)
@ 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);
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);