MeleScript a 3 righe semplice - Errore -128

1

Ho uno scenario in cui mi piacerebbe 2 melecripts separate.

L'idea è super semplice. 2 Applicazioni, ma solo una alla volta.

Esempio: chiudi l'applicazione 1, avvia l'applicazione 2 (e viceversa)

Ecco i 2 script che ho:

A.) OpenSteam

tell application "Plex Home Theater" to quit
delay 5
tell application "Steam" to activate

B.) OpenPlex:

tell application "Steam" to quit
delay 5
tell application "Plex Home Theater" to activate

Lo script "OpenSteam" funziona perfettamente. Fa esattamente quello che voglio che faccia. Tuttavia, lo stesso script al contrario (OpenPlex) non sembra funzionare.

Steam si chiude, ma il mio script mi dà il seguente errore * Nota, Plex non è lanciato:

error "Steam got an error: User canceled." number -128

Non ho idea di cosa significhi, e speravo che qualcuno potesse darmi una mano.

-

Ho ricevuto le mie informazioni iniziali da qui: link Ho modificato gli script di esempio per soddisfare le mie esigenze.

    
posta level42 10.03.2015 - 19:11
fonte

2 risposte

2

Il tuo mal di testa sta nel modo in cui Steam gestisce il suo stato di uscita. Probabilmente Steam non ha l'integrazione di applescript, quindi considera un comando quit da applescript un'uscita non pulita. Sarebbe comunque uscito, ma te lo farà sapere. Ciò di cui hai bisogno è un modo per ignorare il messaggio di errore ed eseguire comunque il resto dello script.

try
    tell application "Steam" to quit
    on error error_message number error_number
        if error_number is equal to -128 then
        --Keep Calm and Carry On
        else
            display dialog error_message
        end if
end try
delay 5
tell application "Plex Home Theater" to activate

Puoi combinare i due script in un unico interruttore / interruttore:

set steamRunning to false
set plexRunning to false

try
    do shell script "pgrep -l -f 'Steam.app'"
    set steamRunning to true
end try

try
    do shell script "pgrep -l -f 'Plex Home Theater'"
    set plexRunning to true
end try

if steamRunning is true and plexRunning is false then

    try
        tell application "Steam" to quit
    on error error_message number error_number
        if error_number is equal to 128 then
            --Keep Calm and Carry On
        else
            display dialog error_message
        end if
    end try
    delay 5
    tell application "Plex Home Theater" to activate

end if


if steamRunning is false and plexRunning is true then

    tell application "Plex Home Theater" to quit
    delay 5
    tell application "Steam" to activate

end if

Non ho nessuna app, quindi non posso eseguire il debug. Potrebbero esserci più processi denominati "steam", data la sua funzione di gioco, quindi ho usato "Steam.app", assumendo che sia il nome dell'app in /Applications/ .

    
risposta data 13.04.2015 - 14:51
fonte
0

Hai provato ...

launch application "Plex Home Theater"
    
risposta data 10.03.2015 - 19:28
fonte

Leggi altre domande sui tag