Il faut modifier les clés de registre windows :
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"
regedit ahk.reg
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).
Enregistrer et modifier des macros. Pretty handy.
Un GUI editor pour AHK !
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.
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 !
Astuces :
:
, :::
fonctionne mais sans aucun modifier. Pour utiliser des modifiers, utiliser le ScanCode SC034
.^ = Ctrl ! = Alt + = Shift
~
laisse passer les frappes (elles ne sont pas “bloquées” par ahk)&
. Elle permet aussi d'uiliser les modifiers dans les cas particuliers.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 :
Ctrl
+ Alt
+ :
= RAlt & SC034::
Ctrl
+ Alt
+
= RAlt & Space::
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 = 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).
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 ^^.