Windows使用AutoHotKey解决鼠标键连击现象(解决鼠标连击、单击变双击的故障)

devtools/2025/1/12 15:21:56/

注:罗技鼠标,使用久了之后会出现连击现象,如果刚好过保了,可以考虑使用软件方案解决连击现象:

以下是示例AutoHotKey脚本,实现了调用XButton1用于关闭窗口(以及Win+W,XButton2也导向关闭窗口,关闭窗口使用了函数Close),其中解决罗技鼠标侧键1(XButton1)所出现的连击现象.

; 可以使用命令#CommentFlag //将注释符; 换为双斜杠
;^ Ctrl
;! Alt
;+ Shift
;# Win/** 修饰符
通配符: 即使附加的修饰键被按住也能激发热键. 这常与 重映射 按键或按钮组合使用.
~ 修饰符
激发热键时,不会屏蔽(被操作系统隐藏)热键中按键原有的功能。
$ 修饰符
通常只在脚本使用 Send 命令发送包含了热键自身的按键时才需要使用此符号, 此时可以避免触发它自己.
$ 前缀强制使用 键盘钩子 来实现此热键, 作为一个副作用这样避免了 Send 命令触发它自己.
$ 前缀相当于在此热键定义之前的某个位置指定了 #UseHook。*/$^w::Close()
return#w::Close()
returnXButton1::Close()
returnXButton2::Close()
returnClose()
{; WinGetClass, class, A; MsgBox, The active window's class is "%class%".; WinGetTitle, Title, A; MsgBox, The active window is "%Title%".;微信IfWinActive, ahk_class WeChatMainWndForPC{WinMinimizereturn};企业微信IfWinActive, ahk_class WeWorkWindow{WinMinimizereturn};资源管理器IfWinActive, ahk_class CabinetWClass{WinClosereturn};.chm HelpIfWinActive, ahk_class HH Parent{WinClosereturn}SetTitleMatchMode, RegEx; Outlook 主窗口IfWinActive, .+Outlook$ ahk_class rctrl_renwnd32{WinMinimizereturn}SetTitleMatchMode, RegEx; SetTitleMatchMode, slow; Outlook 邮件窗口 .+邮件.*IfWinActive, .+(?!Outlook$).* ahk_class rctrl_renwnd32{WinClosereturn}; SetTitleMatchMode, 1; SetTitleMatchMode Fast; 防止出现鼠标连击现象    if (A_PriorHotkey == "XButton1" && A_ThisHotkey == "XButton1" && A_TimeSincePriorHotkey<200){; Send ^w    ; 防止出现鼠标连击现象,这里要空操作!; MsgBox, % "AAA" . A_ThisHotkey . "bbb" . A_TimeSinceThisHotkey}else{Send ^w}
}

--------分割符--------

代码使用XButton1来关闭窗口,关闭窗口使用Close()函数,也即XButton1::Close()。

关键代码:

if (A_PriorHotkey == "XButton1" && A_ThisHotkey == "XButton1" && A_TimeSincePriorHotkey< 200)

关键代码解释如下:A_PriorHotkey代表上一次的按键,A_ThisHotkey代表本次的按键,A_TimeSincePriorHotkey代表2次按键的间隔时间(毫秒),代码含义:如果上一次按键和本次按键均为XButton1,且2次间隔小于200,则{}代表空操作(分号注释代码),否则,将再次发送^w关闭窗口。注意,为了防止死循环调用,$^w::Close()的$代表仅键盘真正的按键^w也即Ctrl+W可以触发Close()函数。否则,本函数只发送^w也即Ctrl+W且不再循环触发Close函数。

实际应用情况中,根据鼠标连击的间隔快慢,可以将200设置为你想要的合适的值。

也可以将代码中,最后部分的 Send ^w 改为 Send XButton1,这样,也可以使XButton1避免重复发送(屏蔽了第2次的发送)。本次案例,精减后的代码【仅针对XButton1】:

; 本代码用于阻止XButton1(侧按键1)出现的连击现象; $ 前缀强制使用 键盘钩子 来实现此热键, 作为一个副作用这样避免了 Send 命令触发它自己
$XButton1::DoXButton1()
returnDoXButton1()
{; 防止出现鼠标连击现象    if (A_PriorHotkey == "XButton1" && A_ThisHotkey == "XButton1" && A_TimeSincePriorHotkey<200){}else{Send XButton1}
}


http://www.ppmy.cn/devtools/149900.html

相关文章

Unity自带的真车模拟系统,速度不够大r时如何以匀速上桥

在 Unity 中&#xff0c;如果你使用自带的真车模拟系统&#xff08;如 Wheel Collider&#xff09;时&#xff0c;发现车辆上桥时速度不够&#xff0c;导致无法顺利上坡&#xff0c;可以通过以下方法调整车辆的行为&#xff0c;使其能够以匀速上桥&#xff1a; 1. 调整 Wheel C…

嵌入式C语言:什么是指针?

目录 一、指针的基本概念 1.1. 定义指针 1.2. 赋值给指针 1.3. 解引用指针 1.4. 指针运算 1.5. 空指针 1.6. 函数参数 1.7. 数组和指针 1.8. 示例代码 二、指针在内存中的表示 2.1. 内存地址存储 2.2. 内存模型 2.3. 指针与硬件交互 2.4. 示例代码 三 、指针的重…

eNSP之家----Tracert实验入门实例详解(路由跟踪;路由追踪;跟踪命令)(重要重要重要的事说三遍)

一、实验目的&#xff1a;PC1到PC2怎么走&#xff0c;PC1到PC3怎么走&#xff0c;是否有环路&#xff0c;练习路由器基本配置。 二、实验拓扑图如下&#xff1a; 三、按照拓扑图在eNSP上安装并配置电脑和路由器。 A、PC1的ip地址配置如下&#xff1a;&#xff08;PC2 PC3按照…

有限元分析学习——Anasys Workbanch第一阶段笔记(9)带孔矩形板与L型支架案例的对称平面处理方案

目录 0 序言 1 带孔矩形板 1.1 模型简化 1&#xff09;对称处理 2&#xff09;平面处理 1.2 前处理 1&#xff09;分析类型选择 2&#xff09;确定分析类型与设置平面参数 3&#xff09;约束、载荷及接触 4&#xff09;控制网格(网格大小需要根据结果不断调整) 1.3…

React(二)——Admin主页/Orders页面/Category页面

文章目录 项目地址一、侧边栏1.1 具体实现 二、Header2.1 实现 三、Orders页面3.1 分页和搜索3.2 点击箭头显示商家所有订单3.3 页码按钮以及分页 四、Category页面4.1 左侧商品添加栏目4.2 右侧商品上传栏 五、Sellers页面六、Payment Request 页面&#xff08;百万数据加载&a…

通信与网络安全管理之ISO七层模型与TCP/IP模型

一.ISO参考模型 OSI七层模型一般指开放系统互连参考模型 (Open System Interconnect 简称OSI&#xff09;是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型&#xff0c;为开放式互连信息系统提供了一种功能结构的框架。 它从低到高分别是…

三化六防是什么

等保2.0讲的“一个中心三重防护”&#xff0c;就是针对安全管理中心和计算环境安全、区域边界安全、通信网络安全的安全合规进行方案设计&#xff0c;建立以计算环境安全为基础&#xff0c;以区域边界安全、通信网络安全为保障&#xff0c;以安全管理中心为核心的信息安全整体保…

比较分析:Windsurf、Cody、Cline、Roo Cline、Copilot 和 通义灵码

随着人工智能技术的快速发展&#xff0c;开发者工具变得越来越智能化&#xff0c;特别是在代码生成、辅助编程等领域&#xff0c;市面上涌现了多种 AI 驱动的工具。本文将从开源性、集成能力、功能覆盖范围、支持的编程语言、生态兼容性、成本、学习曲线、响应速度、离线支持以…