2016-08-04 930 views
2

此代码用于单击屏幕上的特定位置,但是如何单击光标的坐标?AppleScript单击鼠标位置

tell application "System Events" 
    click at {10, 10} 
end tell 
+0

我有完全正确的,现在同样的问题。有没有办法'获得'鼠标的坐标? – Shuri2060

+0

目前我能找到的最好的是这个:http://www.hamsoftengineering.com/codesharing/MouseTools/MouseTools.html – Shuri2060

回答

1

下面的例子与python在applescript中,python是生活在你的系统自然,没有安装计划。

set x to 30 

set y to 5 

set l to 50 -- click same location 50 times 



do shell script " 

/usr/bin/python <<END 

import sys 

import time 

from Quartz.CoreGraphics import * 

def mouseEvent(type, posx, posy): 

      theEvent = CGEventCreateMouseEvent(None, type, (posx,posy), kCGMouseButtonLeft) 

      CGEventPost(kCGHIDEventTap, theEvent) 

def mousemove(posx,posy): 

      mouseEvent(kCGEventMouseMoved, posx,posy); 

def mouseclick(posx,posy): 

      mouseEvent(kCGEventLeftMouseDown, posx,posy); 

      mouseEvent(kCGEventLeftMouseUp, posx,posy); 

ourEvent = CGEventCreate(None); 

currentpos=CGEventGetLocation(ourEvent);    # Save current mouse position 

for x in range(0, " & l & "): 

      mouseclick(" & x & "," & y & "); 

mousemove(int(currentpos.x),int(currentpos.y));  # Restore mouse position 

END" 
+0

你好,下面是一个例子,在python中的applescript中,python自然地生活在你的系统中,没有计划安装。 – deek5

0

您还可以使用applescrit命令工具cliclick

dowload https://github.com/BlueM/cliclick 

unzip cliclick-master.zip 

in a Terminal 

cd /Users/yourname/Downloads/cliclick-master 

make 

now you have in /Users/yourname/Downloads/cliclick-master/ 

cliclick , command tool for using a mouse in applescript with do shell script 

copy cliclick in /usr/local/bin folder 

in a Terminal 

cp -f /Users/yourname/Downloads/cliclick-master/cliclick /usr/local/bin/ 

    in applescript for example 

    do shell script "/usr/local/bin/cliclick " & quoted form of "c:12,34" 

    will click at the point with x coordinate 

       12 and y coordinate 34. 

    in a Terminal for LIST OF COMMANDS 

    cliclick -h 

LIST OF COMMANDS 

    c:x,y Will CLICK at the point with the given coordinates. 
      Example: “c:12,34” will click at the point with x coordinate 
      12 and y coordinate 34. Instead of x and y values, you may 
      also use “.”, which means: the current position. Using “.” is 
      equivalent to using relative zero values “c:+0,+0”. 

    dc:x,y Will DOUBLE-CLICK at the point with the given coordinates. 
      Example: “dc:12,34” will double-click at the point with x 
      coordinate 12 and y coordinate 34. Instead of x and y values, 
      you may also use “.”, which means: the current position. 

    dd:x,y Will press down to START A DRAG at the given coordinates. 
      Example: “dd:12,34” will press down at the point with x 
      coordinate 12 and y coordinate 34. Instead of x and y values, 
      you may also use “.”, which means: the current position. 

    du:x,y Will release to END A DRAG at the given coordinates. 
      Example: “du:112,134” will release at the point with x 
      coordinate 112 and y coordinate 134. 

    kd:keys Will trigger a KEY DOWN event for a comma-separated list of 
      modifier keys. Possible keys are: 
      “alt”, “cmd”, “ctrl”, “fn”, “shift” 
      Example: “kd:cmd,alt” will press the command key and the 
      option key (and will keep them down until you release them 
      with another command) 

    kp:key Will emulate PRESSING A KEY (key down + key up). Possible keys are: 
      “arrow-down”, “arrow-left”, “arrow-right”, “arrow-up”, “delete”, “end”, 
      “esc”, “f1”, “f2”, “f3”, “f4”, “f5”, “f6”, “f7”, “f8”, “f9”, “f10”, “f11”, 
      “f12”, “f13”, “f14”, “f15”, “f16”, “fwd-delete”, “help”, “home”, “mute”, 
      “page-down”, “page-up”, “return”, “space”, “tab”, “volume-down”, “volume-up” 
      Example: “kp:return” will hit the return key. 

    ku:keys Will trigger a KEY UP event for a comma-separated list of 
      modifier keys. Possible keys are: 
      “alt”, “cmd”, “ctrl”, “fn”, “shift” 
      Example: “ku:cmd,ctrl” will release the command key and the 
      control key (which will only have an effect if you performed 
      a “key down” before) 

    m:x,y Will MOVE the mouse to the point with the given coordinates. 
      Example: “m:12,34” will move the mouse to the point with 
      x coordinate 12 and y coordinate 34. 

    p[:str] Will PRINT the given string. If the string is “.”, the 
      current MOUSE POSITION is printed. As a convenience, you can skip 
      the string completely and just write “p” to get the current position. 
      Example: “p:.” or “p” will print the current mouse position 
      Example: “p:'Hello world'” will print “Hello world” 

    tc:x,y Will TRIPLE-CLICK at the point with the given coordinates. 
      Example: “tc:12,34” will triple-click at the point with x 
      coordinate 12 and y coordinate 34. Instead of x and y values, 
      you may also use “.”, which means: the current position. 

    t:text Will emulate typing the given text into the frontmost application. 
      If the text includes space(s), it must be enclosed in quotes. 
      Example: “type:Test” will type “Test” 
      Example: “type:'Viele Grüße'” will type “Viele Grüße” 

    w:ms Will WAIT/PAUSE for the given number of milliseconds. 
      Example: “w:500” will pause command execution for half a second 
+0

版本3.0.3,2014年10月29日发布 作者:CarstenBlüm,<[email protected]> 贡献者名单:https://github.com/BlueM/cliclick/graphs/contributors 网站:www。 bluem.net/jump/cliclick/ – deek5