Creazione di AppleScript per le sequenze di tasti

0

Ho provato a creare il mio AppleScript per fare in modo che il mio Mac premi C 13 volte, premere il tasto freccia sinistra, premere C 13 volte, premere il tasto freccia destra e iniziare dall'inizio ripetutamente a intervalli di 1,7 secondi.

Attualmente sono riuscito a creare uno script funzionante che lo fa premere C più volte. Qualcuno potrebbe aiutarmi per favore con questo? Questo è quello che ho al momento

set i to 0
repeat while i < 1.0E+300
    set i to i + 1
    delay 1.7
    tell application "System Events" to keystroke "c"
end repeat
    
posta kiara 18.08.2018 - 10:32
fonte

1 risposta

0

Per iniziare, il numero 1.0E+300 è un numero grande REALMENTE . Questo è più del numero di atomi nell'intero universo da diversi ordini.

Il tuo script non è lontano. Per premere "c" tredici volte, puoi fare questo:

repeat 13 times
    tell application "System Events" to keystroke "c"
    -- delay 0.1
end repeat

(è potenzialmente necessario un piccolo ritardo per registrare singole sequenze di tasti, ma puoi provare senza e vedere quali opere funzionano);

oppure puoi farlo:

tell application "System Events" to keystroke "ccccccccccccc"

che è l'equivalente del ciclo ripetuto senza il ritardo.

I tasti freccia sinistra e destra sono key code 123 e key code 124 , rispettivamente. Quindi, aggiungendo quelli tra le sequenze di tasti:

tell application "System Events"
    keystroke "ccccccccccccc"
    delay 0.1
    key code 123 -- left arrow
    delay 0.1
    keystroke "ccccccccccccc"
    delay 0.1
    key code 124 -- right arrow
end tell

O:

tell application "System Events"
    repeat 13 times
        keystroke "c"
        delay 0.1
    end repeat

    key code 123 -- left arrow
    delay 0.1

    repeat 13 times
        keystroke "c"
        delay 0.1
    end repeat

    key code 124 -- right arrow
end tell

Infine, facendo questo annuncio all'infinito su un loop a intervalli di 1,7 secondi, produrrà qualcosa di simile a questo:

tell application "System Events" to repeat
    repeat 13 times
        keystroke "c"
        delay 0.1
    end repeat

    key code 123 -- left arrow
    delay 0.1

    repeat 13 times
        keystroke "c"
        delay 0.1
    end repeat

    key code 124 -- right arrow

    delay 1.7
end repeat

Si noti che il ciclo di ripetizione più esterno non ha while , until o times per limitare la sua continuazione. Andrà in loop per sempre, fino a quando non interrompi lo script manualmente.

Inoltre non ho calcolato i ritardi di 0,1 secondi nel ritardo complessivo di 1,7 secondi. I ritardi più piccoli supereranno in totale 1,7 secondi, ma ti permetterò di adattare i tempi alle tue esigenze.

    
risposta data 18.08.2018 - 13:53
fonte

Leggi altre domande sui tag