User Tools

Site Tools


autohotkey

AutoHotKey

Change default editor

Source

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

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 ScanCode SC034.
  • ^ = 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 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::

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

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 ^^.

autohotkey.txt · Last modified: 2015/03/09 18:34 by ginko