Esta postagem sugere que o comando tell application “System Events” to key code 37
no AppleScript deve mover o ponteiro do mouse um pixel para baixo e para a esquerda, se executado quando as teclas para mouse estiverem ativadas. No OS X 10.7.2, no entanto, ele tem o efeito de gerar uma minúscula l
e não mover o mouse.
Da mesma forma, eu esperava que tell application “System Events” to key code 34 using control down
tivesse enviado um clique de controle no ponto atual do cursor do mouse, mas esse não parece ser o efeito.
Alguém sabe uma maneira que funciona no Lion em um MacBook Air de meados de 2011 para gerar um clique ou clicar com o controle na localização atual do mouse usando o AppleScript? Não há problema se ele se basear em roteiros de mouse e / ou scripts de interface do usuário.
Eu preferiria que não envolvesse a instalação de utilitários de linha de comando compilados, mas se esses utilitários existirem e forem compatíveis com o Lion, isso é muito melhor do que nada.
fonte
Respostas:
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
Uso:
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 ..
Que diabos é isso?
-c
) = que foi escapado e cajoled = para cooperar com A / S.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
fonte
left
comright
nos dois kCGEvents. Você também pode movê-lo com algo semelhante adef mousemove(posx,posy): mouseEvent(kCGEventMouseMoved, posx,posy);
Aqui está o script que eu uso para gerar cliques do mouse
A título de explicação, descobri que precisava criar um pequeno movimento do mouse (88) antes que o clique do mouse (87) funcionasse consistentemente. Isso depende de MouseKeys.
fonte