Manzana simple de 3 líneas - Error -128

1

Tengo un escenario en el que me gustaría tener 2 manzanas por separado.

La idea es super simple. 2 aplicaciones, pero solo una se ejecuta a la vez.

Ejemplo: cierre la aplicación 1, inicie la aplicación 2 (y viceversa)

Aquí están los 2 scripts que tengo:

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

El script "OpenSteam" funciona perfectamente bien. Hace exactamente lo que yo quiero que haga. Sin embargo, el mismo script a la inversa (OpenPlex) no parece funcionar.

Steam se cierra, pero mi secuencia de comandos me da el siguiente error * Nota: Plex no se inicia:

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

No tengo idea de lo que esto significa, y esperaba que alguien pudiera ayudarme.

-

Obtuve mi información inicial de aquí: enlace He revisado los scripts de ejemplo para que se ajusten a mis necesidades.

    
pregunta level42 10.03.2015 - 19:11

2 respuestas

2

Su dolor de cabeza radica en cómo Steam maneja su estado de salida. Steam probablemente no tiene integración de Applecript, por lo que considera que un comando quit de Applecript es una salida no limpia. Todavía se detendría, pero te lo hará saber. Lo que necesita es una forma de ignorar el mensaje de error y ejecutar el resto del script, sin embargo.

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

Puede combinar los dos scripts en un interruptor / conmutador:

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

No tengo ninguna de las dos aplicaciones, así que no puedo depurar. Podría haber varios procesos llamados "steam", dado su juego, así que usé "Steam.app", asumiendo que ese es el nombre de la aplicación debajo de /Applications/ .

    
respondido por el fartheraway 13.04.2015 - 14:51
0

Has probado ...

launch application "Plex Home Theater"
    
respondido por el adayzdone 10.03.2015 - 19:28

Lea otras preguntas en las etiquetas