探検


AutoHotkey スレッド part35

■ このスレッドは過去ログ倉庫に格納されています
2024/12/11(水) 12:17:01.35ID:pfy66vhl0
■公式サイト
https://www.autohotkey.com/

■解説等
・v1.1
AutoHotkey Wiki
http://ahkwiki.net/Top

・v2
クイックリファレンス|AutoHotkey v2
https://ahkscript.github.io/ja/docs/v2/
v1.1からの変更|AutoHotkey v2
https://ahkscript.github.io/ja/docs/v2/v2-changes.htm

■前スレ
AutoHotkey スレッド part34
https://egg.5ch.net/test/read.cgi/software/1719681136/
2025/08/29(金) 18:35:12.46ID:GqkxGuKS0
>>796
「もしあるなら誰か海外ニキが作ってないかな?」とちょいとググってみたけど、
某所にて「簡単じゃねぇよ(意訳)」とバッサリ切られてたw
2025/08/29(金) 18:51:13.19ID:NuyAu6V20
>>796
リファレンス
Menu/MenuBarオブジェクト → プロパティ → ClickCount
これは?
間違ってたらスマン
2025/08/29(金) 18:53:27.58ID:coMuEi4N0
>>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
}
}
■ このスレッドは過去ログ倉庫に格納されています