Table of Contents
AutoHotKey
Change default editor
Il faut modifier les clés de registre windows :
- Enregistrer le fichier suivant :
- 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"
- Exécuter la commande suivante dans l'invite de commande (ou télécharger le fichier et double-cliquer ) :
- ahk.reg.bat
regedit ahk.reg
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 ;)
NB : pour archive : code (v2.90).
Macro creator
Enregistrer et modifier des macros. Pretty handy.
GUI creator
Un GUI editor pour AHK !
Auto Reload
A insérer dans le script lui-même. Ne pas oublier d'adapter le nom du fichier !
~^s:: ; Slf : Reload script on save WinGetActiveTitle, Reload If InStr(Reload, "myscript.ahk") Reload Return
Fonctionne avec SciTE4AutoHotkey et Notepad++ at least.
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.
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 !
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 ScanCodeSC034
. ^ = Ctrl ! = Alt + = Shift
~
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 unAltGr
qui est perçu comme uneLControl
+Ralt
. Comme leRalt
n'existe pas physiquement, cela suffit à identifier unAltGr
, un équivalent de^!
.
⇒ Exemples :
- faire un hotlink sur
Ctrl
+Alt
+:
=RAlt & SC034::
- faire un hotlink sur
Ctrl
+Alt
+RAlt & Space::
Functions
Petit précis :
MyFunc(ByRef Var1, ByRef Var2) { if (Var1 = "A") { Var3 := 5 * Var2 return Var3 } else if (Var1 = "B") return true else return false }
Clipboard
clipboard = my text ; Give the clipboard entirely new contents. clipboard = ; Empty the clipboard. clipboard = %clipboard% ; Convert any copied files, HTML, or other formatted text to plain text. clipboard = %clipboard% Text to append. ; Append some text to the clipboard. StringReplace, clipboard, clipboard, ABC, DEF, All ; Replace all occurrences of ABC with DEF (also converts the clipboard to plain text).
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 ^^.