blechmusikの日記

キー・カスタマイズ・ソフトウェア "DvorakJ" の覚え書きをはじめとして様々なことを書いています。

AutoHotkey_L の処理を非同期で実行する関数

非常に手軽に利用できる関数である。非同期で実行するということがよく分からない方は、以下の二つの処理を実行すれば動作の違いを理解できるだろう。

MsgBox, Pipe1
MsgBox, Pipe2
DynaRun("MsgBox Pipe1")
DynaRun("MsgBox Pipe2")

では、つぎのような処理をするとどうなるだろうか。

loop,10
{
	DynaRun("MsgBox " . A_Index)
}

予想される通りこう表示されるのである。

ただし、この非同期処理を柔軟に行いたいならば、フォーラムのコメント欄でも指摘されているように AutoHotkey.dll を利用した方がよいと思う。