User Tools

Site Tools


autohotkey

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
autohotkey [2014/12/15 17:32] – [Change default editor] ginkoautohotkey [2015/03/09 18:34] (current) – [Functions] ginko
Line 20: Line 20:
  
 </file> </file>
-  * Ouvrir une invite de commande +  * 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>
-  * Exécuter la commande suivante (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 ;)
Line 31: Line 30:
 ===== GUI creator ===== ===== GUI creator =====
 Un [[http://ahkscript.org/boards/viewtopic.php?f=6&t=303|GUI editor]] pour AHK ! 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.1418661158.txt.gz · Last modified: 2014/12/15 17:32 by ginko