AutoHotkey 鼠标点击热键实战:一个键绑住五种点击操作
AutoHotkey 鼠标点击热键实战一个键绑住五种点击操作【免费下载链接】AutoHotkeyAutoHotkey - macro-creation and automation-oriented scripting utility for Windows.项目地址: https://gitcode.com/gh_mirrors/au/AutoHotkey审批窗口里有个「确认」按钮位置固定每天要点四十来次。用 AutoHotkey 的鼠标点击热键可以把这个点击绑到 F1 上第二次起就不用再碰鼠标。下面从一段能直接跑的三行脚本开始依次过四种点击动作、条件触发和常见坑。30 秒跑通第一个点击热键新建一个 .ahk 文件写入下面一行双击运行按 F1 后左键就会在当前鼠标位置点一下F1::Click点击动作由Click命令完成真正的第一步发生在它之前输入钩子层source/keyboard_mouse.cpp先捕获 F1 的按键事件再到 source/hotkey.cpp 里与已注册的热键匹配上才执行这一行。按动作拆开四种鼠标点击操作单击单击的规范写法是三行return标志热键主体结束F1:: Click returnClick不带参数就是左键单击写成Click 1等价上一节的单行形式和这三行形式行为一致。双击与右键把 F2 绑成双击、F3 绑成右键就不用手动连点两下F2::Click 2 F3::Click right2是点击次数right切换到右键、middle是中键省略按键词时默认左键。定点坐标点击要点的是固定位置而不是当前鼠标所在处时给Click直接带上 X、Y 即可例子里 F9 点击 (500, 300)F9::Click 500, 300坐标以屏幕左上角为原点的绝对坐标可以用 Window Spy 或移动鼠标时的坐标提示读出准确值。拖拽拖拽本质是「按下、移动、抬起」三步组合下面六行用 F5 模拟向右拖动 100 像素F5:: Click down Sleep 100 MouseMove 100, 0 Click up returnClick down/Click up分别按下和抬起左键MouseMove 100, 0表示相对当前位置向右 100 像素、垂直方向 0改成任意方向与距离即可。让热键只在满足条件时生效热键不必全局生效下面两段示例展示「生效 vs 不生效」的对照写法#IfWinActive, 记事本 F6::Click 100, 200 #IfWinActive F7:: if A_Hour 8 A_Hour 18 Click 300, 400 return第一段#IfWinActive, 记事本把 F6 限定在「记事本窗口激活时」——记事本在前台生效切到其他窗口时按 F6 会被静默忽略窗口条件的判定逻辑在 source/hotkey.cpp 的HotCriterionAllowsFiring中。第二段F7 始终注册但动作只在 8:00–18:00 执行下班后按 F7 什么都不会发生。前者控制的是热键是否生效后者控制的是动作是否执行一个是按键的条件一个是行为的条件。参数速查三个全局默认值热键体系里最常问到的默认值都定义在 source/globaldata.cpp运行时可通过对应的A_内置变量读写参数/变量默认值作用何时需要改g_HotkeyModifierTimeout50 ms修饰键之后多长时间内按下的键算「组合的一部分」超时则修饰键被当作单独按键快速连击 CtrlShiftA 类组合时误判调大或调小g_MaxThreadsPerHotkey1单个热键可并发的动作线程上限超出的触发会被忽略动作较慢、希望新触发排队或丢弃旧动作时g_MaxHotkeysPerInterval70 次 / 2 秒单位时间内的触发次数上限超过会弹「热键失控」警告框合法的高频操作触发警告时调大上限2 秒这个统计窗口由g_HotkeyThrottleInterval默认 2000 ms控制可一并调整。排错三板斧热键不触发——先检查按键是否被其他程序占用或是否被#IfWinActive排除在外运行ListHotkeys可以绑个键如F9::ListHotkeys查看热键是否真的注册成功、挂在什么条件上。递归/重复触发——先检查热键动作里是否用Send发出了同一个键想「触发但不被自己再次捕获」时给按键加$前缀如$F8::Send {F8}。若弹出「2 秒内 70 次热键」的警告框说明脚本进了死循环先修逻辑再谈调上限。多热键冲突——先查同一个键是否在多处定义AutoHotkey 里后定义者覆盖先定义者在脚本里搜出最后一次定义即可如果要在不同窗口给同一个键绑不同动作用#IfWinActive块按窗口隔离。两个完整场景场景 AExcel 日期录入。每天早上要把当天日期填进台账固定单元格再 Tab 跳到下一格工作日天天重复。绑到 Ctrl1并且只在 Excel 窗口生效#IfWinActive, Excel ^1:: Send %A_YYYY%-%A_MM%-%A_DD%{Tab} return #IfWinActive%A_YYYY%等会自动展开为当前日期想改成带前缀录入或录入时间只改Send里的字符串即可。场景 B网页表单自动提交。登录页的输入框和提交按钮位置固定每次刷新页面后都要点一次、填一遍。下面在 Chrome 窗口内用 CtrlAltS 先点用户名框、输入账号密码再回车提交#IfWinActive, ahk_exe chrome.exe ^!s:: Click 400, 300 Send username{Tab}password{Enter} return两个坐标值用 Window Spy 获取换台机器要重新量取若登录靠点按钮而非回车把Enter换成Click 500, 500即可。延伸阅读想继续深入项目说明与命令总览在 README.md热键匹配与触发的完整流程在 source/hotkey.cpp本文提到的所有默认值都能在 source/globaldata.cpp 里核对到。从这里开始任何重复的鼠标活儿都能绑到键上。【免费下载链接】AutoHotkeyAutoHotkey - macro-creation and automation-oriented scripting utility for Windows.项目地址: https://gitcode.com/gh_mirrors/au/AutoHotkey创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考