4 votos

Ejecutar comando de plist cada 5 segundos

Tengo el siguiente archivo plist en mi Usuario/Library/LaunchAgents carpeta. Presiona la tecla "g" cada 60 segundos.

Mi pregunta es, ¿cómo puedo cambiar esto para presionar la tecla "g" cada 5 segundos?

<?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>
    <key>Program</key>
    <string>/usr/bin/osascript</string>
    <key>ProgramArguments</key>
    <array>
        <string>osascript</string>
        <string>-e</string>
        <string>tell application "System Events" to keystroke "g"</string>
    </array>
    <key>ServiceDescription</key>
    <string>Auto Keypress</string>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Second</key>
        <integer>0</integer>
    </dict>
</dict>
</plist>

3voto

Jax Puntos 23

Cambiar el plist para

<?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>G-key-pusher</string>
    <key>Program</key>
    <string>/usr/bin/osascript</string>
    <key>Program</key>
    <string>/bin/sh</string>
    <key>ProgramArguments</key>
    <array>
        <string>sh</string>
        <string>-c</string>
        <string>while sleep 5; do /usr/bin/osascript -e 'tell application "System Events" to keystroke "g"'; done</string>
    </array>
    <key>ServiceDescription</key>
    <string>Auto Keypress</string>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Lo que hace es ejecutar una secuencia de comandos de shell que hace 5 segundos temporizador de llamadas y osascript. El launchd plist sólo asegura la secuencia de comandos se reinicia si fuera a morir por alguna razón. Por favor, tenga en cuenta que todavía no he probado esto, pero no veo ninguna razón por la que no se debe trabajar. A pesar de que he tenido problemas en el pasado, cuando el cambio de launchd artículos, que he arreglado cambiando la etiqueta. Lo que me recuerda, que había omitido el valor de la Label clave en su plist.

(Edit: Explicar un poco, y proporcionar un archivo completo en lugar de explicar en qué partes necesitan ser cambiadas.)

3voto

Cbow0516 Puntos 26

Sé que esto es un hilo muy antiguo pero se vino para arriba en una de mis búsquedas recientes de launchctl asesoramiento así que yo quería incluir la respuesta correcta de lanzar cada "x" segundos. launchctl puede ser utilizado como cron (solo es mejor). En el guión original, el uso de la tecla "StartCalendarInterval". Usted simplemente debe utilizar la tecla "StartInterval" y darle el número de segundos.

Reemplace las líneas:

<key>StartCalendarInterval</key> <dict>
    <key>Second</key>
    <integer>0</integer> </dict>

Con:

<key>StartInterval</key>
<integer>5</integer>
<key>ThrottleInterval</key>
<integer>0</integer>

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