1 votos

Cómo periódicamente mostrar mensaje de alerta *en primer plano*?

Quiero tener una alerta / cuadro de diálogo de fuego periódicamente en primer plano.

He probado una combinación de AppleScript y launchd y logró la secuencia de comandos (en realidad es convertida a una app) disparado periódicamente a través de launchd. Sin embargo, el cuadro de alerta no se muestran en frente de todas las demás ventanas (en lugar totalmente oculto hasta que me ficha para que – a pesar de que hace empezar a través de launchd). ¿Cómo puedo conseguirlo?

Mi script es la siguiente:

on run
    activate me --> tried to get alert in foreground
                --> didn't help, though
    display alert "Should show up in foreground..."
end run

Mi lanzamiento.plist (en /Users/bernhard/Library/LaunchAgents/):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>bernhard.sitstraight.plist</string>

    <key>Program</key>
    <string>/Users/bernhard/programming/periodic.app/Contents/MacOS/applet</string>

    <key>RunAtLoad</key>  
    <true/>

    <key>StartInterval</key>
    <integer>1200</integer>
</dict>
</plist>

1voto

Steve Evans Puntos 155

Trate de usar open , en lugar de lanzar el programa directamente. open más de cerca los partidos de doble clic para iniciar la aplicación AppleScript.

open su aplicación

Para ello, reemplace el Program del valor de la clave par en su launchd boleto del trabajo con un ProgramArguments matriz para proporcionar la ruta de acceso a la aplicación AppleScript:

<key>ProgramArguments</key>
<array>
    <string>/usr/bin/open</string>
    <string>/Users/bernhard/programming/periodic.app</string>
</array>

De forma predeterminada, el open comando intenta llevar de la puesta en marcha de la aplicación de primer plano.

0voto

SPRBRN Puntos 1008

El código parece funcionar bien en mi 10.6.8 (Snow Leopard), aunque yo no ejecutarlo desde launchd.

Yo hice algo muy parecido al monitor de mi batería. El script automáticamente hiberna mi sistema después de dar un recuento de los años 60 con una 'parpadeo' cuadro de diálogo.

Porque, como ustedes, el cuadro de diálogo a veces quedan enterradas, me dio el cuadro de diálogo de un tiempo de espera y se vuelven a mostrar.

Aquí está el código correspondiente applescript código de mi bash schell script...

   userResp="`/usr/bin/osascript 2>&1 <<-EOF
    tell application "System Events"
        activate
        display dialog \
            "Battery below min safe level of ${minBattLvl}%" \
            & "\\n\\nForcing hibernation in: ${cntDown} seconds." \
            as text buttons {"Cancel","$btntext"} \
            default button "$btntext" \
            with icon caution \
            with title "WARNING: Battery Monitor" \
            giving up after $dlgTimeout
    end tell
EOF`"

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