0 votes

Raccourci de l'application KeyboardViewer de Sierra Automator

L'application KeyboardViewer est sauvegardée à partir de cet AppleScript.

on run {input, parameters}
    if application "KeyboardViewer" is running then
        quit application "KeyboardViewer"
    else 
        activate application "KeyboardViewer"
    end if
    return input
end run

Sauvegarde par basculement du dock. J'ajoute un raccourci à ce qui précède, qui nécessite un peu de travail...

Erreur de syntaxe Impossible d'associer l'application "KeyboardViewer" à un objet quelconque. Accès non autorisé.

tell application "System Events"
    set application "KeyboardViewer" to (keystroke "K" using control down)
end tell

1voto

mark stewart Points 133

Merci à tous ! process whose frontmost is true and visible is true Le Keyboard Viewer a gelé derrière une fenêtre du Finder qui a également gelé - 2 gels en 2 jours. Ce qui suit semble fonctionner assez bien, sous MacOS 10.13.2. Il suffit d'ajouter l'option delay 1 .

    on run {input, parameters}
        if application "KeyboardViewer" is running then
            quit application "KeyboardViewer"
            delay 1
        else if application "KeyboardViewer" is not running then
            activate application "KeyboardViewer"
        end if
        return input
    end run

0voto

user3439894 Points 52496

Si vous souhaitez attribuer un raccourci clavier à un AppleScript application vous devrez le faire en tant qu'agent de l'État. Automator Service . Cependant, l'un des problèmes que vous rencontrerez, quand Visualisateur de clavier a le focus est, il va manger le raccourci clavier et ne pas fermer Visualisateur de clavier . Vous devez vous éloigner de la mise au point Visualisateur de clavier afin que le Automator Service pour fermer Visualisateur de clavier .

Les éléments suivants AppleScript code fait cela, à condition que vous n'ayez pas mis le focus dessus après son ouverture ou que vous ne l'ayez pas réinitialisé ailleurs si vous l'avez fait.

on run
    tell application "System Events"
        set activeApp to name of first application process whose frontmost is true and visible is true
    end tell
    if application "KeyboardViewer" is running then
        quit application "KeyboardViewer"
    else
        activate application "KeyboardViewer"
    end if
    tell application activeApp to activate
end run

Sur Automator créer un nouveau Service flux de travail avec le réglage suivant :

  • Le service ne reçoit aucune contribution dans aucune application
  • Ajouter a Exécuter AppleScript action .
    • Remplacer le défaut code avec le code ci-dessus.
    • Cliquez sur le site Compiler (icône du marteau).
  • Sauvez comme par exemple : Basculer l'affichage du clavier
  • Sur Préférences du système > Clavier > Services > Raccourcis > Services
    • Trouvez par exemple Basculer l'affichage du clavier et lui donner un raccourci .
    • Je l'ai donné : K

Note : Trouver un raccourci clavier qui n'est pas déjà pris par une autre application peut être un défi. Dans ce cas d'utilisation, toute application qui a le focus lorsque par exemple K est pressé, il se rendra à l'application assignée commande avant qu'il n'aille vers l'e.g. : Basculer l'affichage du clavier service. Vous devrez peut-être vous adresser à un service à quatre clés raccourci clavier par exemple : ^K

Automator Service

System Preferences > Keyboard > Services > Shortcuts** > Services

0 votes

J'ai essayé l'approche des services, mais le raccourci a été ignoré. J'ai ensuite essayé les mêmes approches pour les applications et les services, en utilisant launchd keyboardservicesd, et j'ai obtenu le même résultat. Peut-être un if-else, mais alors if-else ne peut pas gérer l'affectation des touches (la syntaxe est bonne mais le système ne peut pas l'analyser). FAQ sur les raccourcis Nulaana nulana.com/support - tell application "System Events" delay 0.5 keystroke "n" using {command down, control down} end tell

0 votes

Nulana's Delay 0.5 fonctionne, la frappe est enregistrée dans l'application de l'icône de basculement du Dock mais... Maintenant nous avons un problème KeyboardViewer est ouvert, et l'application ne fait que surligner les touches de raccourci, interceptant et coupant les paramètres de raccourci des services de l'application. Je pense que cet effort doit injecter quelque chose de plus dans launchd. Btw, les instructions ci-dessus sont très bien faites.

0 votes

@mark stewart, Ce que j'ai posté fonctionne, je ne l'aurais pas posté autrement ! Dire "J'ai essayé l'approche Services, mais le raccourci a été ignoré" n'a aucune valeur si l'on ne sait pas quel raccourci clavier vous avez attribué. Avez-vous lu mon Remarque : dans ma réponse ? Si le raccourci clavier que vous avez assigné a été fait par le code que vous montrez dans l'OP, c'est-à-dire tell application "System Events" set application "KeyboardViewer" to (keystroke "K" using control down) Vous ne pouvez pas assigner un raccourci clavier dans ce manuel, c'est un codage incorrect, même s'il se compile. Lisez la première partie de ma réponse jusqu'au code.

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