Comment imiter le comportement de la macro en deux étapes «Ctrl-K, C» de Visual Studio à l'aide de Autoit / Autohotkey?

StackOverflow https://stackoverflow.com/questions/200587

  •  03-07-2019
  •  | 
  •  

Question

J'essaie de configurer des macros AutoHotkey pour certaines tâches courantes, et je souhaite que les touches de raccourci imiter le raccourci "en deux étapes" de Visual Studio comportement - c’est-à-dire que vous appuyez sur Ctrl - K pour activer le "mode macro"; en mode macro, certaines touches lancent une macro puis désactivent le "mode macro", et toute autre touche ne fait que désactiver le mode macro.

Exemple - lors de la saisie d'un nom de fichier, je souhaite pouvoir insérer la date du jour en appuyant sur Ctrl - K , puis en appuyant sur D .

Quelqu'un at-il un bon exemple d'un script AutoHotkey avec état qui se comporte de la sorte?

Était-ce utile?

La solution

Ce script Autohotkey, lorsque vous appuyez sur ctrl + k , attend que vous appuyez sur une touche et si vous appuyez sur d , entrera la date actuelle.

^k::
Input Key, L1
FormatTime, Time, , yyyy-MM-dd
if Key = d
    Send %Time%
return

Autres conseils

Une légère variation de la réponse acceptée - c’est ce que j’ai fini par utiliser. Je capture Ctrl + LWin (touche Windows gauche) pour éviter tout conflit avec les raccourcis VS intégrés Ctrl-K.

; Capture Ctrl+Left Windows Key
^LWin::

; Show traytip including shortcut keys
TrayTip, Ctrl-Win pressed - waiting for second key..., t: current time`nd: current date, 1, 1

; Capture next string input (i.e. next key)
Input, Key, L1

; Call TrayTip with no arguments to remove currently-visible traytip
TrayTip

if Key = d
{
    FormatTime, Date, , yyyyMMdd
    SendInput %Date%
} 
else if Key = t 
{
    FormatTime, Time, , hhmmss
    SendInput %Time%
}   
return
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top