#Requires AutoHotkey v2.0 #SingleInstance Force ; FFXI_MenuDual_v4.3.5_CurePleaseOnly Persistent GetButtons() { state := Buffer(16, 0) for dll in ["xinput1_4.dll","xinput1_3.dll","xinput9_1_0.dll"] { try { if (DllCall(dll "\XInputGetState", "UInt", 0, "Ptr", state.Ptr, "UInt") = 0) return NumGet(state, 4, "UShort") } } return -1 } ; Menu / Start ボタン BTN_MENU := 0x0010 lastDown := false busy := false DoShort() { ; F10を送るだけではなく、Pause切替スクリプトを直接実行する ; (EasyFarmToggle方式と同じ「呼んだら即実行」パターン) cp := A_ScriptDir "\CurePleasePauseAll_RunOnce.ahk" if !FileExist(cp) { MsgBox "CurePleasePauseAll_RunOnce.ahk が見つかりません" return } Run cp TrayTip "FFXI Menu Dual", "短押し → CurePlease Pause切替", 1 } Poll() { global lastDown, busy if busy return btn := GetButtons() if (btn = -1) return nowDown := (btn & BTN_MENU) != 0 ; 離した瞬間だけ短押しとして扱う if (!nowDown && lastDown) { busy := true DoShort() Sleep 180 busy := false } lastDown := nowDown } SetTimer Poll, 30