AppleScript单击鼠标位置

时间:2016-08-04 11:57:34

标签: events click applescript system mouse

此代码可以点击屏幕上的特定位置,但是如何点击光标的坐标?

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

5 个答案:

答案 0 :(得分:2)

下面是一个带有python in 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"

答案 1 :(得分:2)

你也可以在applecrit中使用命令工具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

答案 2 :(得分:1)

你一定要抓住AppleScript工具箱。它具有脚本命令,可以让您的鼠标位置和鼠标单击。 AppleScript Toolbox is a scripting addition/AppleScript-plugin (a.k.a. “OSAX”) providing commands not available in regular AppleScript

答案 3 :(得分:0)

    use framework "Foundation"


    property NSEvent : a reference to current application's NSEvent
    property NSScreen : a reference to current application's NSScreen


    # Get display size
    set display to NSDeviceSize ¬
        of deviceDescription() ¬
        of item 1 ¬
        of NSScreen's screens() as record

    # Get mouse location (relative to the bottom-left of the screen)
    set mouseLocation to {x, y} of (NSEvent's mouseLocation as record)

    # Calculate mouse y-coordinate so it's relative to the top of the screen
    set mouseLocation's item 2 to (display's height) - (mouseLocation's item 2)


    tell application "System Events" to click at the mouseLocation

答案 4 :(得分:0)

我使用Swift编程语言在Xcode中创建了一个命令行工具来生成可执行文件:

    // Location of Mouse pointer
    var ml = NSEvent.mouseLocation
    ml.y = NSHeight(NSScreen.screens[0].frame) - ml.y
    let location = CGPoint(x: ml.x, y: ml.y)

    // Single mouse click.
    var e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseDown, mouseCursorPosition: location, mouseButton: .left)!
    e.post(tap: .cghidEventTap)
    e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseUp, mouseCursorPosition: location, mouseButton: .left)!
    e.post(tap: .cghidEventTap)

    e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseDown, mouseCursorPosition: location, mouseButton: .left)!
    e.setIntegerValueField(.mouseEventClickState, value: 1)
    e.post(tap: .cghidEventTap)

    e = CGEvent(mouseEventSource: nil, mouseType: .leftMouseUp, mouseCursorPosition: location, mouseButton: .left)!
    e.setIntegerValueField(.mouseEventClickState, value: 1)
    e.post(tap: .cghidEventTap)

然后我在脚本编辑器中创建了一个Shell脚本来触发可执行文件:

do shell script "/Users/bobby/Documents/AppleScripts/Mouse/Executables/Click"

根据保存可执行文件的位置更改位置。