2021年7月7日水曜日

AutoHotkey 小ネタ

 ● ctrl+2キーストローク


ctrl+wをトリガーにした例です。
最初に自身のラベルを一時的にoffにしているのは ctrl+w,w を有効にするためです。
これが無いと無限ループに陥るのか、動作しません。
次のInputでは ctrl+英文字の入力を期待しています。
ここで終了キーとして左右のctrlキーを指定していますが、これは「ctrlを押し直したら入力失敗」という仕様になります。


;ctrl+ 2キーストローク
^w::
Hotkey, ^w, Off
Input, inputText, L1 M T0.7,{LCtrl}{RCtrl}
Hotkey, ^w, On

IfInString, ErrorLevel, Timeout, Return

ctrlD := Chr(4) ;ctrl+dを定義
ctrlE := Chr(5)
ctrlF := Chr(6)
ctrlW := Chr(23)

If (inputText = ctrlD) ;ctrl+w,d
Send, ^n
else if (inputText = ctrlE)
Send, ^+n
else if (inputText = ctrlW) ;ctrl+w,w
Send, ^w
Return



● GUIフォームへペースト


全てにおいてGUIコントロールへの入力を要求してくるならず者システムに対処します。
テキストエディタ上でコピーし、ctrl+alt+v で改行をタブに変換して貼り付けます。





;GUIフォームへペースト
^!v::
StringReplace, out, Clipboard, `r`n, {Tab}, All
Send, %out%
Return