次のコードを使用して、マウスのクリックをシミュレートしています。
void PostMouseEvent(CGMouseButton button, CGEventType type, const CGPoint point)
{
CGEventRef theEvent = CGEventCreateMouseEvent(NULL, type, point, button);
CGEventSetType(theEvent, type);
CGEventPost(kCGHIDEventTap, theEvent);
CFRelease(theEvent);
}
void LeftClick(const CGPoint point)
{
PostMouseEvent(kCGMouseButtonLeft, kCGEventMouseMoved, point);
NSLog(@"Click!");
PostMouseEvent(kCGMouseButtonLeft, kCGEventLeftMouseDown, point);
PostMouseEvent(kCGMouseButtonLeft, kCGEventLeftMouseUp, point);
}
基本的に同じコードを使用して、以下を変更することでコントロールクリック(右クリック)を実行できます。
kCGEventLeftMouseDown
kCGEventLeftMouseUp
kCGMouseButtonLeft
それぞれの「正しい」イベントに。関数は次のようになります。
void RightClick(const CGPoint point)
{
PostMouseEvent(kCGMouseButtonRight, kCGEventMouseMoved, point);
NSLog(@"Click Right");
PostMouseEvent(kCGMouseButtonRight, kCGEventRightMouseDown, point);
PostMouseEvent(kCGMouseButtonRight, kCGEventRightMouseUp, point);
}
しかし、ダブルクリックはどうですか?2回の左クリックを送信し、PostMouseEvent()を2回続けて呼び出してみましたが、うまくいきませんでした。ダブルクリックをどのように実行しますか?
ありがとう!