2017-06-02 2 views
0

Je n'arrive pas à trouver comment détecter une touche dans AppleScript et comment retarder jusqu'à ce que cette touche soit relâchée. Je veux faire une bascule pour le zoom, et j'ai tout le reste (je pense). Ceci est mon code actuelDétecter les touches et les délais jusqu'à la libération de la clé AppleScript

on idle 
    set ztoggle to 0 

    repeat 

     --how do i make it so a key is needed to run this loop? maybe an 'if (im not sure what to put here) then' loop?-- 
      if (ztoggle = 1) then 
       set ztoggle to 0 
      else if (ztoggle = 0) then 
       set ztoggle to 1 
      end if 
     --how do i make it so the program waits at this line until the key from before is released? i was thinking delay, but im not sure-- 


     if (ztoggle = 1) then 
      tell application "System Events" 
       key code 28 using {option down, command down} 
      end tell 
     end if 

     set ztoggle to 0 

    end repeat 
end idle 

Est-ce que quelqu'un sait comment je ferais cela? En outre, c'est la première fois que j'essaie quelque chose avec AppleScript, donc si j'ai foiré ailleurs, faites le moi savoir.

Répondre

0

Ceci n'est pas possible avec AppleScript ("vanilla"). La seule chose à proximité est de vérifier qu'une touche de modification est enfoncée en utilisant le binaire de ligne de commande tiers "checkModifierKeys" (https://bitbucket.org/anddam/checkmodifierkeys/downloads/?tab=downloads).

Il faudrait utiliser quelque chose comme

do shell script "/usr/local/bin/checkModifierKeys control" 

dans une boucle de répétition. Cela fonctionne bien.