Processo non in esecuzione ma app mostrata nel dock

1

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à:

  1. Applescript "dì all'applicazione" Contatti "per attivare
  2. Applescript "dì all'applicazione" Contatti "per uscire (entrambi rispondono con "l'applicazione non è in esecuzione)
  3. 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

    
posta AdamR 27.11.2015 - 02:49
fonte

1 risposta

1

Mi è sembrato di aver finalmente trovato un modo per superare questo. È piuttosto grezzo, ma ha funzionato per me.

se errorno = -600 allora                     dire all'applicazione "Eventi di sistema"                         tell process "Dock"                             fai clic sull'elemento UI "Contatti" dell'elenco 1                         fine raccontare                     fine raccontare                     ritardo 10: consentire a volte che il processo venga visualizzato nell'elenco dei processi                     dire all'applicazione "Eventi di sistema"                         dice al processo "Contatti" per renderlo visibile a false - run hidden                     fine raccontare                 fine se

Forzando un clic sul dock, il processo viene nuovamente visualizzato nell'elenco dei processi e quindi l'app può essere chiusa, riavviata o qualsiasi altra cosa. Strano.

    
risposta data 08.12.2015 - 04:09
fonte

Leggi altre domande sui tag