User Tools

Site Tools


autohotkey

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
autohotkey [2014/12/15 15:25] – created ginkoautohotkey [2015/03/09 18:34] (current) – [Functions] ginko
Line 1: Line 1:
 ====== 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://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 : le {{::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 ! 
 + 
 +===== Auto Reload ===== 
 +A insérer dans le script lui-même. Ne pas oublier d'adapter le nom du fichier ! 
 +<code autohotkey>~^s:: ; Slf : Reload script on save 
 +WinGetActiveTitle, Reload 
 + If InStr(Reload, "myscript.ahk"
 + Reload 
 +Return</code> 
 +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. 
 +<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::'' 
 + 
 +==== Functions ==== 
 + 
 +  * [[http://www.autohotkey.com/docs/Functions.htm|Functions]] 
 +  * [[https://ginkobox.fr/vamp/index.php?tag=autohotkey|Snippets]] 
 + 
 +Petit précis : 
 +<code autohotkey>MyFunc(ByRef Var1, ByRef Var2) 
 +
 +    if (Var1 = "A"
 +    { 
 +        Var3 := 5 * Var2 
 +        return Var3 
 +    } 
 +    else if (Var1 = "B"
 +        return true 
 +    else 
 +        return false 
 +}</code> 
 +==== Clipboard ==== 
 +[[http://www.autohotkey.com/docs/misc/Clipboard.htm|Clipboard]] 
 +<code autohotkey>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).</code> 
 +===== 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.1418653529.txt.gz · Last modified: 2014/12/15 15:25 by ginko