#Requires AutoHotkey v2.0 #include Notify.ahk #SingleInstance global toggleX := false ; 初始化 toggleX 变量,并声明为全局变量 ; 只在 FIGHT_N_RAGE.exe 窗口激活时有效 #HotIf WinActive("ahk_exe FIGHT_N_RAGE.exe") A:: { Send("{Down down}") ; 按下向下方向键 Sleep(50) ; 等待50毫秒 Send("{Down up}") ; 松开向下方向键 Send("{Up down}") ; 按下向上方向键 Sleep(50) ; 等待50毫秒 Send("{Up up}") ; 松开向上方向键 Send("{Z down}") ; 按下Z键 Sleep(100) ; 等待100毫秒 Send("{Z up}") ; 松开Z键 } ; 按下 X 键时,持续按下和松开 X 键,不会修改X键的默认行为 ~X:: { global toggleX ; 显式声明 toggleX 为全局变量 if (toggleX) ; 如果 toggleX 为真,执行操作 { ;连发必须搭配while 避免关闭线程 while GetKeyState("X", "P") ; 判断物理按下是否按下 X 键 ; "P" 表示检查物理按键的状态,即检测键是否被按下或松开。 ; 如果按键被按下,GetKeyState("X", "P") 会返回 True,表示按下状态。 ; 如果按键被松开,GetKeyState("X", "P") 会返回 False,表示松开状态。 ; GetKeyState("X", "P") 会在每次循环时检查 X 键的物理状态,如果你按住了 X 键,循环会一直进行;当松开 X 键时,循环停止。 ; 总结一下, "P" 是指检查实际按键的状态,而非虚拟或软件中的按键状态。 { Send("{X down}") ; 持续按下 X 键 Sleep(50) ; 每50毫秒模拟一次按下 Send("{X up}") ; 松开 X 键 Sleep(50) ; 每50毫秒模拟一次松开 } } } ; 按下 F1 键来切换 X 键的启用/禁用状态 F1:: { global toggleX ; 显式声明 toggleX 为全局变量 toggleX := !toggleX ; 切换 toggleX 的状态 if (toggleX) { Notify.Show('Alert!', 'X连击未激活.', , , , 'theme=!') } else { Notify.Show('Alert!', 'X连击激活.', , , , 'theme=!') } Sleep(1000) ; 显示提示1秒钟 ToolTip("") ; 隐藏提示 } #HotIf ; 结束条件块 ; 按下win+ C 弹出提示 任何时候都可以激活 没有前置条件 #c:: { MsgBox("You pressed Win-C while any window except Notepad is active.") Notify.Show('Info', 'X连击未激活.', , 'soundi', , 'theme=idark style=edge show=slideNorth hide=slideSouth@250 pos=ct z=100') } return