14 votes

Peut-on programmer un Mac pour simuler l'enfoncement d'une touche à une certaine vitesse via un logiciel ?

Existe-t-il un moyen ou une application tierce qui me permettrait de spécifier, par exemple, que je veux qu'il envoie un événement clavier (de sorte que cela ait le même effet que de frapper physiquement la touche sur le clavier) toutes les 5 secondes ?

Donc, par exemple, je peux lui dire de frapper K toutes les 5 secondes, 15 fois au total ?

En gros, je cherche quelque chose comme AutoHotkey mais pour OS X.

11voto

GaryF Points 11921

J'ai trouvé un moyen de le faire dans un script de bash :

#!/bin/sh
# Simulates hitting a key on OS X
# http://apple.stackexchange.com/a/63899/72339

echo "tell application \"System Events\" to keystroke \"$1\"" | osascript

Enregistrer sous hitkey , chmod +x hitkey , hitkey k de frapper K .

À partir de là, il est simple d'utiliser Automator pour boucler plusieurs fois le script ou faire une alarme iCal pour déclencher le script à une heure précise.

Automator document types

0 votes

N'est-ce pas manquer la partie "répéter toutes les 5 secondes pour un total de 15 fois" ?

1 votes

Je ne savais pas pour le echo "script" | osascript syntaxe - j'ai toujours utilisé osascript -e "script" . Vous obtenez donc +1 pour cela.

1 votes

@DanielLawson : oui, mais en ayant le shell script c'est simple de le boucler comme on veut.

11voto

Robin Robinson Points 1031

Voici un AppleScript pour faire ce que vous voulez :

set i to 0
repeat while i < 15
    set i to i + 1
    delay 5
    tell application "System Events" to keystroke "k"
end repeat

Vous pouvez le mettre en ligne dans un shell script comme ceci :

echo "set i to 0
repeat while i < 15
set i to i + 1
delay 5
tell application \"System Events\" to keystroke \"k\"
end repeat" | osascript

(Merci à @houbysoft pour le echo "script" | osacript syntaxe !)

0 votes

Je n'ai jamais utilisé Automator. Pourriez-vous partager un guide étape par étape ? J'aimerais appuyer à plusieurs reprises sur la touche Retour dans un formulaire Web.

0voto

Jeongpyo Lee Points 1

Voici mon flux de travail type

  1. dans la ligne de commande, tapez Ctrl + x puis Ctrl + e pour entrer dans Vim et tapez-y.

  2. tapez ci-dessous ; vous voyez qu'il n'y a pas de backslash.

     cat << EOF | osascript
     set repeat_number to 5
     set i to 1
     repeat while i <= repeat_number
     tell application "System Events" to keystroke "k"
    
     display notification "repeat keystroke " & i & "time"
     set i to i + 1
     delay 1
     end repeat
    EOF
  3. puis enregistrez vim et quittez la commande, en supposant que vous savez comment sortir dans vim ;)

    • Esc :wq
  4. Retour au terminal pour exécuter ce qui a été tapé ci-dessus.

+++ Oh, encore une chose.

     cat | osascript
     display alert "typeing like Script Editor, no need to type backslash!"
     display notification "type ctrl + d to end typing and run it."

0 votes

Utilisation de cat avec un here-doc semble être un peu exagéré (vous n'avez pas besoin du cat partie).

1 votes

@nohillside Aaaah, des échos de "l'utilisation inutile de cat ", régulièrement décernés sur comp.unix.shell au bon vieux temps de Usenet !

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X