Si se escribe "STOP", haga esto

1

Sería posible Por ejemplo, sería posible para mí codificar un código de repetición muy simple pero decir: Si acabo de escribir DETENER que terminaría el programa, aquí está mi código de inicio para la repetición.

set x to 1

repeat while x is 1
    tell application "Finder"
       activate
       make new Finder window
    end tell
end repeat

y así, por ejemplo, si se ingresa STOP, ¿establecer x en 2 o algo así?

Gracias

    
pregunta rauf543 26.01.2016 - 15:47

1 respuesta

2

No: Applescript no es multiproceso en el sentido de que puedes configurar dos cosas para que sucedan al mismo tiempo.

Para hacer lo que quieras, necesitarías otro idioma que pudiera abrir una ventana para que el usuario pueda escribir los caracteres que se interpretarán y cambiar la variable de señal para salir del bucle. Ese lenguaje manejaría múltiples subprocesos y la comunicación entre los dos procesos para que la configuración del nuevo valor de X sea visible para el otro subproceso que ejecuta el bucle.

Si prefieres quedarte con AppleScript, probablemente podrías hacer lo que quieras utilizando la existencia de un archivo para mantener el bucle en funcionamiento:

if file "semaphore" of application "Finder" exists then
   -- continue processing...
end if

Esto se documenta en enlace

Busque la sección titulada Parámetro directo o use la cadena de semáforo para ubicar el fragmento que copié arriba. Luego, puede hacer que el usuario elimine el archivo "elegido"; tal vez lo ponga en su escritorio y lo llame "keepRunning" o algo así para que lo destruyan cuando el script deje de ejecutarse.

    
respondido por el bmike 26.01.2016 - 16:21

Lea otras preguntas en las etiquetas