0 votos

AppleScript aplicación no responde de la fuerza de cierre

Tengo una simple secuencia de comandos:

caffeinate -di

que he guardado como una aplicación. Cuando hago clic en la aplicación que se ejecuta el proceso y se queda en el banquillo. Cuando hago clic en el icono del Dock, que dice "la Aplicación No Responde" y la única manera de terminar el proceso de de Fuerza de Cierre.

Es allí cualquier manera de escribir este guión, de modo que la normal "Salir" del menú de muestra y no tengo que forzar cierre cada vez que quiero para detenerlo?

1voto

red_menace Puntos 111

Cualquier momento una aplicación que hace algo así como una ejecución de un bucle ajustado o realizar un script de shell que no vuelve, la interfaz de usuario se bloquea debido a que la aplicación no está permitiendo que el sistema tenga tiempo de procesar los eventos. En este caso un NSTask puede ser utilizado, ya que se ejecuta en segundo plano, y la aplicación solo se usa para iniciar y parar.

El siguiente debe ser guardado como una estancia-abrir la aplicación de la secuencia de comandos de shell se inicia y termina con la aplicación:

use AppleScript version "2.4" -- Yosemite (10.10) or later
use framework "Foundation"
use scripting additions

property task : missing value -- keep track of the NSTask

on run -- example
    tell current application's NSTask's alloc()'s init()
        set my task to it
        its setLaunchPath:"/bin/sh"
        its setArguments:{"-c", "/usr/bin/caffeinate -di"}
        tell it to |launch|()
    end tell
end run

on quit
    if task's isRunning then tell task to terminate()
    continue quit
end quit

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X