Windows使用AutoHotKey解决鼠标键连击现象(解决鼠标连击、单击变双击的故障)
注:罗技鼠标,使用久了之后会出现连击现象,如果刚好过保了,可以考虑使用软件方案解决连击现象:
以下是示例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}
}
相关文章:
Windows使用AutoHotKey解决鼠标键连击现象(解决鼠标连击、单击变双击的故障)
注:罗技鼠标,使用久了之后会出现连击现象,如果刚好过保了,可以考虑使用软件方案解决连击现象: 以下是示例AutoHotKey脚本,实现了调用XButton1用于关闭窗口(以及WinW,XButton2也导向…...
Linux 环境(Ubuntu)部署 Hadoop 环境
前置准备 准备三台机器 cat /etc/hosts 192.168.1.7 hadoop-master 192.168.1.11 hadoop-slave01 192.168.1.12 hadoop-slave02Linux 环境 cat /etc/os-release PRETTY_NAME"Ubuntu 24.10" NAME"Ubuntu" VERSION_ID"24.10" VERSION"24.…...
如何在Windows 11 WSL2 Ubuntu 环境下安装和配置perf性能分析工具?
在Windows 11 WSL2 Ubuntu 环境下完整安装和配置perf性能分析工具 一、背景二、准备工作三、获取并编译Linux内核源码四、安装和配置perf五、测试perf六、总结 一、背景 由于WSL2使用的是微软定制的内核,并非标准的Ubuntu内核,因此直接使用apt安装linux…...
Docker运维高级容器技术知识点总结
1、虚拟机部署和容器化部署的区别是什么? 1、技术基础: <1>.虚拟化技术在物理硬件上创建虚拟机,每台虚拟机运行自己完整的操作系统、从而实现资源隔离。 <2>.容器化技术:将应用程序打包在容器内,在进程空间…...
react-quill 富文本组件编写和应用
index.tsx文件 import React, { useRef, useState } from react; import { Modal, Button } from antd; import RichEditor from ./RichEditor;const AnchorTouchHistory: React.FC () > {const editorRef useRef<any>(null);const [isModalVisible, setIsModalVis…...
LabVIEW轴承性能测试系统
本文介绍了基于LabVIEW的高效轴承性能测试系统的设计与开发。系统通过双端驱动技术实现高精度同步控制,针对轴承性能进行全面的测试与分析,以提高轴承的可靠性和寿命。 项目背景 随着工业自动化程度的提高,对轴承的性能要求越来越高。传统的…...
【《游戏编程模式》实战04】状态模式实现敌人AI
目录 1、状态模式 2、使用工具 3、状态模式适用范围 4、实现内容 5、代码及思路 Enemy.cs EnemyState.cs 6、unity里的设置 7、运行效果展示 1、状态模式 “允许一个对象在其内部状态改变时改变自身的行为。对象看起来好像是在修改自身类。” 就是一个对象能随着自己…...
借助免费GIS工具箱轻松实现las点云格式到3dtiles格式的转换
在当今数字化浪潮下,地理信息系统(GIS)技术日新月异,广泛渗透到城市规划、地质勘探、文化遗产保护等诸多领域。而 GISBox 作为一款功能强大且易用的 GIS 工具箱,以轻量级、免费使用、操作便捷等诸多优势,为…...
科研绘图系列:R语言科研绘图之标记热图(heatmap)
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图系统信息参考介绍 科研绘图系列:R语言科研绘图之标记热图(heatmap) 加载R包 library(tidyverse) library(ggplot2) library(reshape)…...
【轻松学C:编程小白的大冒险】--- C语言简介 02
在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 【轻松学C:编程小白的大冒险】…...
《HeadFirst设计模式》笔记(上)
设计模式的目录: 1 设计模式介绍 要不断去学习如何利用其它开发人员的智慧与经验。学习前人的正统思想。 我们认为《Head First》的读者是一位学习者。 一些Head First的学习原则: 使其可视化将文字放在相关图形内部或附近,而不是放在底部…...
数据结构:ArrayList与顺序表
目录 📖一、什么是List 📖二、线性表 📖三、顺序表 🐬1、display()方法 🐬2、add(int data)方法 🐬3、add(int pos, int data)方法 🐬4、contains(int toFind)方法 🐬5、inde…...
SpringBoot之核心配置
学习目标: 1.熟悉Spring Boot全局配置文件的使用 2.掌握Spring Boot配置文件属性值注入 3.熟悉Spring Boot自定义配置 4.掌握Profile多环境配置 5.了解随机值设置以及参数间引用 1.全局配置文件 Spring Boot使用 application.properties 或者application.yaml 的文…...
EasyExcel上传校验文件错误信息放到文件里以Base64 返回给前端
产品需求: 前端上传个csv 或 excel 文件,文件共4列,验证文件大小,类型,文件名长度,文件内容,如果某行某个单元格数据验证不通过,就把错误信息放到这行第五列,然后把带有…...
单片机软件定时器V4.0
单片机软件定时器V4.0 用于单片机定时执行任务等,比如LED GPIO等定时控制,内置前后台工作模式 头文件有使用例子 #ifndef __SORFTIME_APP_H #define __SORFTIME_APP_H#ifdef __cplusplus extern "C" { #endif#include <stdint.h>// #…...
超完整Docker学习记录,Docker常用命令详解
前言 关于国内拉取不到docker镜像的问题,可以利用Github Action将需要的镜像转存到阿里云私有仓库,然后再通过阿里云私有仓库去拉取就可以了。 参考项目地址:使用Github Action将国外的Docker镜像转存到阿里云私有仓库 一、Docker简介 Do…...
C++ 入门第26天:文件与流操作基础
往期回顾: C 入门第23天:Lambda 表达式与标准库算法入门-CSDN博客 C 入门第24天:C11 多线程基础-CSDN博客 C 入门第25天:线程池(Thread Pool)基础-CSDN博客 C 入门第26天:文件与流操作基础 前言…...
使用python将多个Excel表合并成一个表
import pandas as pd# 定义要合并的Excel文件路径和名称 file_paths [file1.xlsx, file2.xlsx, file3.xlsx, file4.xlsx, file5.xlsx]# 创建一个空的DataFrame来存储合并后的数据 merged_data pd.DataFrame()# 循环遍历每个Excel文件,并读取其中的数据 for file_p…...
halcon三维点云数据处理(七)find_shape_model_3d_recompute_score
目录 一、find_shape_model_3d_recompute_score例程代码二、set_object_model_3d_attrib_mod函数三、prepare_object_model_3d 函数四、create_cube_shape_model_3d函数五、获得CamPose六、project_cube_image函数七、find_shape_model_3d函数八、project_shape_model_3d函数 一…...
vue js实现时钟以及刻度效果
2025.01.08今天我学习如何用js实现时钟样式,效果如下: 一、html代码如下: <template><!--圆圈--><div class"notice_border"><div class"notice_position notice_name_class" v-for"item in …...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...
yaml读取写入常见错误 (‘cannot represent an object‘, 117)
错误一:yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因,后面把yaml.safe_dump直接替换成yaml.dump,确实能保存,但出现乱码: 放弃yaml.dump,又切…...
【若依】框架项目部署笔记
参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作: 压缩包下载:http://download.redis.io/releases 1. 上传压缩包,并进入压缩包所在目录,解压到目标…...
Java并发编程实战 Day 11:并发设计模式
【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天,今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案,它们不仅提供了优雅的设计思路,还能显著提升系统的性能…...
