25/08/29 18:53:27.58 coMuEi4N0.net
>>796
いくつか方法がありますが、以下の説明でまったく分からないとか言うレベルでなければ、実装自体は割と簡単にできます
・A_TrayMenu.ClickCount := 1 とすることでデフォルト動作をダブルクリックではなくシングルクリックに変更する
当然ながらトレイアイコンのダブルクリックは使用できなくなります
・ACCかUIAライブラリを拾ってきて使用する
おそらく、一番簡単で汎用性が高い方法です
私は中クリックにスクリプトのリロードするように割り当てています。省略していますがこんな感じです
#Include UIA.ahk
#HotIf GetMouseClassName("Shell_TrayWnd") ; マウス下のクラス名を取得する自作関数
MButton:: {
if UIA.ElementFromPoint().Name == "MyScript_v2.ahk"
Reload()
ifまたはswitchでの判定で他のトレイアイコンにも使用可能です
・OnMessageを使用する
AHKは固有ウィンドウメッセージとして、0x404がトレイアイコンの通知メッセージとして使用されているようです
したがって、下記のようにOnMessageを指定しておくことでメッセージをインターセプトできます
OnMessage(0x404, AHK_NOTIFYICON)
AHK_NOTIFYICON(wParam, lParam, *) {
if lParam == 0x202 { ; WM_LBUTTONUP
MsgBox
return 0
}
}