概要
AUtohotkey(Autohotkey_Lも含む)で、特定のアプリケーションがアクティブの時のみ処理を分岐させたい時の構文の解説です。
サンプル
Illustratorがアクティブの時のみSendPlayを実行します。
;■F4でctrl-v
F4::
if ( WinActive("ahk_class illustrator") ){
SendPlay,!ep
}else{
Send,^v
}
return
解説
特定のアプリケーションのみ実行するときには ifとWinActive()関数を使います。
WinActiveに指定する文字列はAutohotkeyのメニューよりWindow spyを実行すると取得できます。
複数の条件を指定するときには論理演算子の OR || や AND && NOT が使えます。
Autohotkey_Lの場合
上記の方法に加え、スクリプト内の大きな範囲を指定するときには #If 構文も使えます
#IF WinActive("ahk_class illustrator") OR WinActive("ahk_class AcrobatSDIWindow")
キーAの処理
...
キーBの処理
...
キーCの処理
...
;end if の代わり。#IF の適用範囲ここまで
#IF
備考
#IfWinActive構文でも似たようなことができますが、論理演算子や任意の関数が使えないのが難点です。l
AutoHotKey をホットキーレベルでのみにしか使えてない素人です。コマンドの使い方を分かってきます。出来れば今後も続いて後続記事が出たら良いです。