Come fare in modo che Automator inserisca "AW" in una nota di Promemoria

3

Ho provato a utilizzare "Watch Me Do" in Automator per inserire il testo "AW" e "Return" in una nota Stickies. Ha registrato quanto segue (gli eventi erano "Tipo" AW "" e "Premi Invio", il resto è l'espansione nel codice):

- Digita "AW"

    delay 0.315949
    set timeoutSeconds to 2.000000
    set uiScript to "keystroke \"AW\""
    my doWithTimeout( uiScript, timeoutSeconds )

- Premi Invio

    delay 2.538645
    set timeoutSeconds to 2.000000
    set uiScript to "keystroke \"
    \" "
    my doWithTimeout( uiScript, timeoutSeconds )

    on doWithTimeout(uiScript, timeoutSeconds)
        set endDate to (current date) + timeoutSeconds
        repeat
            try
                run script "tell application \"System Events\"
    " & uiScript & "
    end tell"
                exit repeat
            on error errorMessage
                if ((current date) > endDate) then
                    error "Can not " & uiScript
                end if
            end try
        end repeat
    end doWithTimeout

In Preferenze di Sistema, Sicurezza e amp; Privacy, Privacy Ho permesso ad Automator.app e Stickies.app di controllare il mio computer.

Ho salvato l'esempio precedente come servizio e ho provato ad eseguire il servizio in una nota Stickies vuota. Non è successo niente.

Sono nuovo nel tentativo di utilizzare Automator. Questa è un'azione così semplice che credo di aver frainteso qualcosa.

Se aggiungo al flusso di lavoro un'azione di Automator esistente che avvia l'applicazione Stickies, viene inserito "AW", seguito da "Invio".

Domanda Come creare una macro tastiera semplice con Automator? mostra un Applescript molto più semplice che potrebbe essere adattato per fare ciò che descrivo (l'ho fatto) ma sono frustrato dal fatto che il mio semplice "Watch Me Do" non funzioni. Cosa sto trascurando o non capendo?

    
posta Alan Wehmann 10.06.2017 - 01:19
fonte

1 risposta

1

L'app Stickies non è scriptabile , il che significa che non supporta direttamente AppleScript tramite un dizionario AppleScript di Stickies quindi la maggior parte della codifica utilizzerà Eventi di sistema e ciò che viene generalmente definito UI Scripting per manipolare l'app Appiccicosi .

L'esempio codice sotto, farà quanto segue:

  • Apri Stickies.app e, o se già aperto, portalo in primo piano.
  • Crea una nuova nota Stickies.
  • Sposta la nuova nota nell'angolo in alto a sinistra dello schermo e imposta le sue dimensioni sulla dimensione predefinita.
  • Scrivi "AW" e "return", con "return" simula il tasto Invio premuto.
tell application "Stickies"
    activate
    delay 1
end tell
tell application "System Events"
    keystroke "n" using command down
    set properties of window 1 of application process "Stickies" to {position:{0, 23}, size:{300, 200}}
    keystroke "AW" & return
end tell

Questo codice AppleScript può essere inserito in un'azione Esegui AppleScript in un servizio Automator flusso di lavoro .

Nota: uno degli svantaggi di UI Scripting , a volte è l'uso necessario del delay comando per garantire < em> target Elemento dell'interfaccia utente disponibile per l'esecuzione. Potresti / dovresti regolare il valore di qualsiasi delay comando e / o aggiungere / rimuovere ulteriori delay comandi se necessario / voluto attraverso uno specifico scenario UI Scripting . L'esempio code sopra, così come è, ha funzionato sul mio sistema. Se necessario, usa il comando delay comando e regola il suo valore come / dove necessario / voluto.

Anche l'esempio precedente code non impiega alcuna forma di gestione degli errori assoluta e intende solo mostrare come i singoli eventi possono essere codificato per raggiungere l'obiettivo. L'onere è sempre sull'utente di aggiungere / utilizzare la gestione degli errori appropriata come necessario / voluto.

    
risposta data 13.06.2017 - 19:59
fonte

Leggi altre domande sui tag