2016-07-29 10 views
0

私はAutoHotKeyでかなり新しく、マクロシステムを作ろうとしています。AHKでのテキストマクロシステムの作成

Macro(text) 
{ 
ClipSaved := ClipboardAll  ; save clipboard 
clipboard := text 
ClipWait 
Sleep, 150 
Send, ^v 
clipboard := ClipSaved  ; restore original clipboard 
return 
} 

で機能を使用する理由:私はテキスト変数

hi = 
(
Hello, 

Some more text 
) 

Hotstring

::\hi:: 
Macro(hi) 
return 

と機能Macroを持って :現在、私はこのようになり、システムを持っていますクリップボードは、長いテキストブロックが印刷されるまで遅延する傾向があり、その機能では発生しない問題があるためです。

私は動的ホットストリングと呼ばれるコンセプトを見つけました。私は何とかそれを実装して、すべてのテキストフィールドに2番目に表示されたブロックを書く必要はなく、代わりにという1つのホットストリング私の入力が\で始まり、それに続くxという名前のスクリプトに変数がある場合、それはMacro(x)を実行するはずですが、私はこれまで同じような例は見つけられていません。

コードサンプルを私に提供したり、チェックアウトする必要がある場合は何かを教えてください。

答えて

1

そこにはいくつかの動的なHotstring AutoHotkeyをする機能がありますが、これはおそらく、あなたはあなたがhotstring.ahkをダウンロードして、例のように、それを#includeする必要がmenixator

Hotstringを使いたいものです。

#SingleInstance, force 
#include Hotstring.ahk 

hi= 
(
Hello, 

Some more text 
) 

bye= 
(
So long, 

Some more text 
) 

Hotstring("/hi", "Paste") 
Hotstring("/bye", "Paste") 
return 

Paste: 
text:=Trim($,"/") ; we need to get rid of the leading/
text:=% %text%  ; and need to dereference it 
Macro(text) 
Return 

Macro(text) 
{ 
ClipSaved := ClipboardAll  ; save clipboard 
Clipboard := text 
ClipWait 
Sleep, 150 
Send, ^v 
clipboard := ClipSaved  ; restore original clipboard 
return 
} 

あなたは、例えばグローバルオブジェクト(連想配列)に格納することもできますが、これはあなたが軌道に乗る必要があり、特に変数と、それを行うには、いくつかのよりエレガントな方法があります。

関連する問題