AHK如何绑定按住/点击按键实现红点脚本的启停与暂停功能
AHK屏幕红点脚本升级实现
已实现需求
- 支持自定义绑定键盘/鼠标按键,按下即可切换红点的显示、隐藏状态
- 按下除绑定触发按键外的任意按键,自动暂停脚本运行,同时隐藏红点
完整代码
; 红点参数配置区 x := A_ScreenWidth // 2 ; 自动取屏幕水平中心坐标,可替换为固定数值如840 y := A_ScreenHeight // 2 ; 自动取屏幕垂直中心坐标,可替换为固定数值如525 w := 3 ; 红点宽度 h := 3 ; 红点高度 Color := 0xFF0000 ; 红点颜色,默认红色 WS_EX_TRANSPARENT := 0x20 WS_EX_LAYERED := 0x80000 ; 触发按键配置,可自行修改为目标按键 ; 常见按键标识:XButton1(鼠标后退侧键)、XButton2(鼠标前进侧键)、MButton(鼠标中键)、F1-F12(功能键) TriggerKey := "F2" ; 红点GUI初始化,默认隐藏 Gui +AlwaysOnTop -Caption +ToolWindow +LastFound Gui Color, % Color WinSet ExStyle, % "+" WS_EX_LAYERED | WS_EX_TRANSPARENT RedDotVisible := false ; 注册触发按键热键 Hotkey, % TriggerKey, ToggleRedDot ; 全局按键监听,按下任意非触发键则暂停脚本 KeyListener := InputHook("V I1") KeyListener.KeyOpt(TriggerKey, "E") ; 排除触发按键,按下触发键不触发暂停 KeyListener.OnChar := Func("PauseRun") KeyListener.OnKeyDown := Func("PauseRun") KeyListener.Start() return ; 切换红点显示状态逻辑 ToggleRedDot: RedDotVisible := !RedDotVisible if (RedDotVisible) { Gui Show, x%x% y%y% w%w% h%h% NA } else { Gui Hide } return ; 暂停脚本逻辑 PauseRun(*) { global RedDotVisible ; 隐藏红点 if (RedDotVisible) { Gui Hide RedDotVisible := false } ; 暂停脚本,需要恢复可右键托盘AHK图标选择恢复 Pause, On }
自定义调整说明
- 调整红点参数:直接修改参数配置区的坐标、宽高、颜色数值即可
- 修改触发按键:修改
TriggerKey := "F2"行中引号内的按键标识即可
内容的提问来源于stack exchange,提问作者4ngry
相关产品推荐
相关产品推荐

