Ho un applecript che viene eseguito automaticamente e si basa sull'applicazione "Contacts" in esecuzione. Occasionalmente, fallisce quando il processo "Contatti" scompare misteriosamente dal monitor dell'attività, sebbene il dock lo mostri ancora come in esecuzione.
Quanto segue NON funzionerà:
- Applescript "dì all'applicazione" Contatti "per attivare
- Applescript "dì all'applicazione" Contatti "per uscire (entrambi rispondono con "l'applicazione non è in esecuzione)
- Applescript "do shell script killall launchserviced" seguito da "killall dock" viene eseguito correttamente ma non risolve il problema
L'unica soluzione è MANUALMENTE uscire da "Contatti" dal dock e quindi riattivarlo ma quella soluzione non è soddisfacente perché richiede un intervento manuale. Qualche idea su a) perché l'errore si verifica eb) come posso risolvere l'errore chiudendo "Contatti" da applescript?
Qualsiasi idea sarà apprezzata
....
In risposta al commento di bmike;
Esecuzione di OS X 10.10.5 e qui è la sezione pertinente del applescript
imposta la data di oggi su (data corrente) come testo
* indica all'applicazione "Eventi di sistema"
try
set myprocessid to (get id of process "Contacts")
on error number errorno
display dialog errorno
if errorno is equal to -1728 then -- process not found
try
tell application "System Events" to run application "Contacts"
on error number errorno
if errorno = -600 then
display dialog errorno & todaysdate as text
end if
end try
do shell script "/bin/sleep 3" --and allow enough time for the app to activate
end if
end try
fine tell
Questa sezione tenta di attivare "Contatti" se rileva che il processo non è in esecuzione (errore -1728). Quindi tenta di eseguire l'app ma si verifica sempre errori con -600 (l'app non è in esecuzione). Un semplice applescript per uscire dall'app commette anche errori con -600.
Quindi, se il processo è mancante, l'app non può essere attivata e anche uscire non funziona.
Grazie per i tuoi commenti