暫定)OS X 10.13で使える擬似マウスコントロール [AppleScript辞書はつくれるか?]
(* [使用例] my movePointer(100, 120) -- |移動|
my singleClick(10, 10) -- |クリック|
my doubleClick(80, 80) -- |ダブルクリック(注意:なぜかうまく機能しません)|
--|複数まとめてクリック| set multiplePoint to {{15, 10}, {40, 38}} set interval to 1.0 --|間隔(秒)| my multipleClick(multiplePoint, interval) *)
my singleClick(10, 10)
(* ポインター(矢印カーソル)の移動 *) on movePointer(x, y) set codeText to "import sys; from Quartz.CoreGraphics import *; x = float(" & x & "); y = float(" & y & "); po = CGPointMake(x, y); event = CGEventCreateMouseEvent(None, 2, po, 0); CGEventPost(0, event);" do shell script "python -c " & quoted form of codeText return true end movePointer
(* シングルクリック *) on singleClick(x, y) set codeText to "import sys; from Quartz.CoreGraphics import *; x = float(" & x & "); y = float(" & y & "); po = CGPointMake(x, y); event = CGEventCreateMouseEvent(None, 1, po, 0); CGEventPost(0, event); event = CGEventCreateMouseEvent(None, 2, po, 0); CGEventPost(0, event);" do shell script "python -c " & quoted form of codeText return true end singleClick
(* ダブルクリック - *) on doubleClick(x, y) set codeText to "import sys; from Quartz.CoreGraphics import *; import time; " set codeText to codeText & "x = float(" & x & "); y = float(" & y & "); po = CGPointMake(x, y); event = CGEventCreateMouseEvent(None, 1, po, 0); CGEventPost(0, event); event = CGEventCreateMouseEvent(None, 2, po, 0); CGEventPost(0, event); time.sleep(0.3); " set codeText to codeText & "event = CGEventCreateMouseEvent(None, 1, po, 0); CGEventPost(0, event); event = CGEventCreateMouseEvent(None, 2, po, 0); CGEventPost(0, event); " do shell script "python -c " & quoted form of codeText return true end doubleClick
(*複数まとめてクリック*) on multipleClick(inputList, interval) if (class of inputList) is not list then return false set codeText to "import sys; from Quartz.CoreGraphics import *; " if interval > 0 then set codeText to codeText & "import time; " repeat with p in inputList set codeText to codeText & "x = float(" & (item 1 of p) & "); y = float(" & (item 2 of p) & "); po = CGPointMake(x, y); event = CGEventCreateMouseEvent(None, 1, po, 0); CGEventPost(0, event); event = CGEventCreateMouseEvent(None, 2, po, 0); CGEventPost(0, event); " if interval > 0 then set codeText to codeText & "time.sleep(" & interval & "); " end repeat log codeText do shell script "python -c " & quoted form of codeText return true end multipleClick |
コメント 0