4 votos

launchd: preguntar al usuario antes de realizar tareas de

Es allí una manera de conseguir una definida por el usuario launchd tarea (es decir, como el que en esta pregunta) para obtener la confirmación del usuario antes de ejecutar la tarea? Una ventana emergente como la de el sueño programado (con sí/no y un temporizador en caso de que el usuario no de entrada) sería genial, de lo contrario un simple sí/no emergentes.

4voto

LCC Puntos 572

Hacer launchd llamar a este AppleScript. Se muestra un cuadro de diálogo con un tiempo de espera y llama a un script de shell si el usuario selecciona "Aceptar".

set timeoutInSeconds to 60
set abortOnTimeout to true

tell application (path to frontmost application as text)
    try
        set dialogResult to display dialog "Do you want to execute?" default button 2 giving up after timeoutInSeconds
        on error number -128
            return
    end try
end tell

if gave up of dialogResult and abortOnTimeout then
    return
end if

do shell script "/path/to/yourscript.sh"

1voto

Launchd agentes se les permitió interactuar con la interfaz gráfica de usuario, e incluso los demonios pueden usar osascript para mostrar los cuadros de diálogo.

Usted también podría usar algo como esto en un script de shell:

osascript -e 'tell app (path to frontmost application as text)'
display dialog "Continue?"
end' || exit 0

La secuencia de comandos se cierra con un error si el usuario presiona el botón cancelar o cierra el cuadro de diálogo. También podría decirle a un proceso en segundo plano como SystemUIServer para mostrar el cuadro de diálogo, pero tendrías que añadir algo como activate application (path to frontmost application as text) a mover el foco a la anteriormente centrado ventana.

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