此代码可以点击屏幕上的特定位置,但是如何点击光标的坐标?
tell application "System Events"
click at {10, 10}
end tell
答案 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"
根据保存可执行文件的位置更改位置。