%20com%20AppleScript.png)
Estou tentando encontrar uma maneira de automatizar a colocação de um navegador da Web na frente (ou seja, dar foco, torná-lo visível na tela) com base em um evento que acontece em uma página da Web. Eu tenho controle total sobre a página da web, então posso fazer o que for necessário para acionar isso.
Preciso ter vários aplicativos abertos com uma página da web em segundo plano que monitora algumas câmeras de vídeo. Quando uma câmera de vídeo tem movimento, preciso que a janela do navegador fique na frente para que fique visível em vez de qualquer aplicativo que esteja sendo usado.
Eu estava pensando em algo semelhante ao que esse cara estava tentando fazer:Como trazer o aplicativo para frente a cada 15 minutos no Mac OS X Lion?
Eu estava pensando em usar o AppleScript para rodar em um loop contínuo e, uma vez por segundo, verificar a página aberta no Safari, procurar alguma alteração e enviar o comando "ativar" ao Safari para trazê-lo para a frente. É assim que devo fazer isso ou existe uma maneira melhor?
Responder1
Eu provavelmente usaria launchd ou cron em vez de executar o script como um processo em segundo plano.
Salve um script como este em algum lugar do Editor AppleScript:
try tell application "Safari" tell document 1 where name starts with "Webcam" to do JavaScript "--" if result is "--" then activate end tell end
Salve uma lista de propriedades como esta
~/Library/LaunchAgents/com.superuser.443513.plist
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.superuser.443513</string> <key>ProgramArguments</key> <array> <string>osascript</string> <string>/Users/username/Library/Scripts/script.scpt</string> </array> <key>StartInterval</key> <integer>5</integer> <!-- every 5 seconds --> </dict> </plist>
launchctl load ~/Library/LaunchAgents/com.superuser.443513.plist
Você poderia simplesmente usar curl para verificar a condição? Você poderia executá-lo a cada dois minutos editando o crontab EDITOR=nano crontab -e
e adicionando uma linha como esta:
*/2 * * * * [[ -n "$(curl -L http://superuser.com/questions/443513 | grep automate)" ]] && open http://example.com