操作自動化(Mac)是一系列有關使用Mac的Xcode
製作可代人手按下滑鼠, 鍵盤等可以讓用戶節省時間的教學
此教學製作時使用Xcode 3.2.3
操作自動化(Mac)01: 控制滑鼠位置並按下滑鼠
以下只為參考方法
可能會有其他方法達到相同效果
(此教學所用的指令需求為Mac OS X v10.4或以上)
此教學會在開啟程式後移動滑鼠並按下滑鼠左鍵
首先定義一個Point
在 awakeFromNib 中定義一個名叫abc的CGPoint
CGPoint abc;
然後為abc定義數值, 即要按下滑鼠的位置
abc.x = 10;
abc.y = 10;
'以上2行定義abc為10, 10的位置 (0, 0 代表最左上角)
如果要abc是目前滑鼠位置, 則使用
CGEventRef mouseEvent = CGEventCreate(NULL);
abc = CGEventGetLocation(mouseEvent);
CFRelease(mouseEvent);
定義了位置, 現在是要移動和按下滑鼠了
CGEventRef mouseDownEv = CGEventCreateMouseEvent (NULL,kCGEventLeftMouseDown,abc,kCGMouseButtonLeft);
CGEventPost (kCGHIDEventTap, mouseDownEv);
CGEventRef mouseUpEv = CGEventCreateMouseEvent (NULL,kCGEventLeftMouseUp,abc,kCGMouseButtonLeft);
CGEventPost (kCGHIDEventTap, mouseUpEv );
以上4行指令
第1,3行是定義按下放開滑鼠的變數,kCGEventLeftMouseDown指按下滑鼠左鍵,kCGEventLeftMouseUp指放開滑鼠左鍵
其他按鈕的名稱請見Xcode說明文件中Quartz Event Services Reference中的Constants
第2,4行是對滑鼠執行的指令
這樣就完成了喔!
awakeFromNib 現在應該是這個樣子
-(void) awakeFromNib{
CGPoint abc;
abc.x = 10;
abc.y = 10;
CGEventRef mouseDownEv = CGEventCreateMouseEvent (NULL,kCGEventLeftMouseDown,abc,kCGMouseButtonLeft);
CGEventPost (kCGHIDEventTap, mouseDownEv);
CGEventRef mouseUpEv = CGEventCreateMouseEvent (NULL,kCGEventLeftMouseUp,abc,kCGMouseButtonLeft);
CGEventPost (kCGHIDEventTap, mouseUpEv );
沒有留言:
發佈留言