Há toneladas de utilitários de linha de comando para fazer isso ... e eu acho que essa rota é a sua melhor aposta ... Um benefício? é que essas soluções devem funcionar, independentemente de as "teclas do mouse" estarem ou não ativadas, certo? Um dos meus favoritos é cliclick
Cliclick ”é a abreviação de“ Command-Line Interface Click ”. > É uma pequena aplicação shell / terminal que emula os cliques do mouse ou uma série de cliques do mouse (incluindo cliques duplos e cliques de controle) em coordenadas arbitrárias da tela.
Portanto, é uma ferramenta para automatizar / criar scripts de coisas que não podem ser roteirizadas (por exemplo, usando o AppleScript). Diferentemente da GUI Scripting, não requer que o "Access for assistive devices" seja ativado nas Preferências do Sistema.
Uso:
$ cliclick c m
irá "control-click" o local atual do mouse, mas você também pode especificar as coordenadas, shift-click, clique duplo, etc. Ele também pode retornar as coordenadas do mouse com um -q
argumento e retornar o mouse ao local original (quando especificar coordenadas) com o -r
argumento.
No seu caso .. Eu acho que você acabou de ...
do shell script "cliclick c m"
de dentro do seu AppleScript / Workflow / whatever ...
Há um ótimo post sobre este assunto no site da MacWorld ( née Mac OS X Hints ) - que eu adquiri muitas informações boas, ao longo dos anos. Se você não se importa com a minha resposta, certamente encontrará uma solução que você gosta, há ... hacks para fazer todos sorrirem - de uma aberração do Automator a um obstinado C maluco.
Atualizar:
Há parecem ser algumas maneiras - com "fazê-lo" no AppleScript .. mas todos eles parecem exigir saber onde o mouse é ... que eu suponho que você não. Então, em um jogo embaraçosamente nerd para algum rep ... eu escrevi isso ..
do shell script "python -c 'import sys, time; from Quartz.CoreGraphics import *;
def mouseEvent(type, posx, posy):
theEvent = CGEventCreateMouseEvent(None, type, (posx,posy), kCGMouseButtonLeft);
CGEventPost(kCGHIDEventTap, theEvent);
def mouseclickdn(posx,posy):
mouseEvent(kCGEventLeftMouseDown, posx,posy);
def mouseclickup(posx,posy):
mouseEvent(kCGEventLeftMouseUp, posx,posy);
ourEvent = CGEventCreate(None);
currentpos = CGEventGetLocation(ourEvent);
print currentpos[0];
print currentpos[1];
mouseclickdn(currentpos.x, currentpos.y);
mouseclickup(currentpos.x, currentpos.y)'
"
Que diabos é isso?
- O AppleScript chama 'do shell script'.
- O que então chama Python - com um argumento de linha de comando (
-c
) = que foi escapado e cajoled = para cooperar com A / S.
- Python então "importa" CoreGraphics / Quartz, etc.
- E define alguns métodos Cocoa-API / PyObjC para "lidar com" o mouse.
- Python "descobre" onde o mouse está.
- E clica! (abaixo, depois para cima)
- Como bônus, ele retorna as coordenadas do mouse, 'se você estava interessado'.
Funciona 100% e nem é tão lento. Espero que você goste!
Editar:
Aqui está o BASH one-liner, para os puristas / A / S haters.
echo -e "import sys, time; from Quartz.CoreGraphics import *\ndef mouseEvent(type, posx, posy): theEvent = CGEventCreateMouseEvent(None, type, (posx,posy), kCGMouseButtonLeft); CGEventPost(kCGHIDEventTap, theEvent);\ndef mouseclickdn(posx,posy): mouseEvent(kCGEventLeftMouseDown, posx,posy);\ndef mouseclickup(posx,posy): mouseEvent(kCGEventLeftMouseUp, posx,posy);\nourEvent = CGEventCreate(None); currentpos = CGEventGetLocation(ourEvent); print currentpos[0]; print currentpos[1]; mouseclickdn(currentpos.x, currentpos.y);\nmouseclickup(currentpos.x, currentpos.y);" | python