Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
autohotkey [2014/12/15 16:28] – ginko | autohotkey [2015/03/09 17:56] – [HotKeys] ginko |
---|
====== AutoHotKey ====== | ====== AutoHotKey ====== |
| |
* [[http://www.autohotkey.com/|Official site]] | * [[http://www.autohotkey.com/|Official site (outdated)]] |
* [[http://www.autohotkey.com/docs/commands.htm|Toutes les fonctions]] | * [[http://www.autohotkey.com/docs/commands.htm|Toutes les fonctions]] |
* [[http://www.autohotkey.com/docs/Hotkeys.htm|Les hotkeys]] | * [[http://www.autohotkey.com/docs/Hotkeys.htm|Les hotkeys]] |
* [[http://www.autohotkey.com/docs/KeyList.htm|La codif des touches]] | * [[http://www.autohotkey.com/docs/KeyList.htm|La codif des touches]] |
| * [[http://ahkscript.org/|The new official site, community friendly ♥]] |
| ===== Change default editor ===== |
| [[http://ahkscript.org/boards/viewtopic.php?f=7&t=50#p28510|Source]] |
| |
| |
| Il faut modifier les clés de registre windows : |
| * Enregistrer le fichier suivant :<file reg ahk.reg>Windows Registry Editor Version 5.00 |
| |
| [HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command] |
| @="notepad++.exe %1" |
| |
| [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AutoHotkeyScript\Shell\Edit\Command] |
| @="notepad++.exe %1" |
| |
| </file> |
| * Exécuter la commande suivante dans l'invite de commande (ou télécharger le fichier et double-cliquer :-) ) : <file winbatch ahk.reg.bat>regedit ahk.reg</file> |
===== Help ===== | ===== Help ===== |
Un script plutôt maousse qui liste toutes les hotkeys actives : [[http://ahkscript.org/boards/viewtopic.php?f=6&t=96]]. Une fois lancé, ''Win'' + ''F1'' pour l'activer ;) | Un script plutôt maousse qui liste toutes les hotkeys actives : [[http://ahkscript.org/boards/viewtopic.php?f=6&t=96]]. Une fois lancé, ''Win'' + ''F1'' pour l'activer ;) |
| |
NB : pour archive : {{::help.zip|code (v2.90)}}. | NB : pour archive : {{::help.zip|code (v2.90)}}. |
| ===== Macro creator ===== |
| [[http://ahkscript.org/boards/viewtopic.php?f=6&t=143|Enregistrer et modifier des macros]]. Pretty handy. |
| |
| ===== GUI creator ===== |
| Un [[http://ahkscript.org/boards/viewtopic.php?f=6&t=303|GUI editor]] pour AHK ! |
| |
| ===== Syntaxe ===== |
| ==== Affectation ==== |
| |
| AHK supporte 2 syntaxe mutuellement exclusives pour l'affectation de variables. Mixer les 2 peut-être utile, mais c'est à utiliser à vos risques et périls. |
| <code ahk>MyVar = Ceci est ma valeur ; Ceci est ma valeur |
| MyVar := "Ceci est ma valeur" ; Ceci est ma valeur |
| Rep := RegexReplace(Myvar, ".* (e\w+).*", "Match = $1") ; Match = est |
| Rep := RegexReplace(%Myvar%, ".* (e\w+).*", "Match = $1") ; Erreur !!! car l'interpréteur va remplacer %Myvar% par Ceci est ma valeur, ce qui va rendre la commande invalide !</code> |
| ==== HotKeys ==== |
| * [[http://www.autohotkey.com/docs/KeyList.htm|KeyList]] |
| * [[http://www.autohotkey.com/docs/Hotkeys.htm|Hotkeys]] |
| |
| Astuces : |
| * La key history view donne toutes les infos. Pour le voir : Clic droit sur icon tray AHK > Open > Ctrl-K puis taper les touches désirées entre deux F5. Cette fenêtre donne les codes VK, SC et Key, très utiles. |
| * **ATTENTION** : Pour hotlinker '':'', '':::'' fonctionne mais sans aucun modifier. Pour utiliser des modifiers, utiliser le ScanCode ''SC034''. |
| * <code>^ = Ctrl |
| ! = Alt |
| + = Shift</code> |
| * ''~'' laisse passer les frappes (elles ne sont pas "bloquées" par ahk) |
| * Il y a une syntaxe pour des combinaisons arbitraires de touches : ''&''. Elle permet aussi d'uiliser les modifiers dans les cas particuliers. |
| * Sur certains claviers, le ''Alt'' de droite est remplacé par un ''AltGr'' qui est perçu comme une ''LControl'' + ''Ralt''. Comme le ''Ralt'' n'existe pas physiquement, cela suffit à identifier un ''AltGr'', un équivalent de ''^!''. |
| |
| => Exemples : |
| * faire un hotlink sur ''Ctrl'' + ''Alt'' + '':'' = ''RAlt & SC034::'' |
| * faire un hotlink sur ''Ctrl'' + ''Alt'' + '' '' = ''RAlt & Space::'' |
| ===== Travailler avec des buffers ===== |
| Un design pattern qui marche assez bien consiste à sérialiser des données dans des buffers ficher séparés via une ou plusieurs HotKeys puis de les utiliser dans d'autres HotKeys. Ces buffers évitent d'avoir à développer une logique complexe de sérialisation/parsing tout en permettant de vérifier facilement les contenus bufferisés. |
| |
| __**/!\ NB /!\**__ : Faire un ''FileRead, MyVar, FileName.ext'' suivi d'un ''Send %MyVar%'' "brut" est à proscrire, AHK se met alors à déconner sérieusement en envoyant chaotiquement des séquences entières du script lui-même. |
| Il faut soit passer une ''Loop, parse'' ou bien charger le contenu du fichier dans le ''clipboard'' puis faire un ''Send ^v'', très efficace ^^. |
| |