AutoHotKey自动热键(七)WINDOWS按键映射与鼠标映射(替换/组合)

news2024/9/21 14:53:41

请添加图片描述

该脚本支持简单的按键替换,可以针对某个窗口进行按键替换,还可以对鼠标和键盘进行互相替换,也可以用来禁用一些按键

键盘按键映射

普通按键映射

a::b

这样子就直接在全局把所有的a键输入都映射成b键输出

上面这一行在执行过程中相当于拆解成下面两个,第一个是按下,第二个是弹起

*a::
SetKeyDelay -1   
Send {Blind}{b DownTemp}  
return

*a up::
SetKeyDelay -1 
Send {Blind}{b Up}
return

设置按键无延迟, 如果目标键是鼠标则使用SetMouseDelay代替,不加上这一行默认是有20的延迟

DownTemp 和 Down 相似, 不过使用 DownTemp 时脚本中后面的其他 Send 命令则不会假定 “b” 仍然处于按下的状态.

所有的勾子热键都不会被同脚本中的send命令触发,想要直接运行直接使用Gosub +触发即可

{Blind}保持Alt/Control/Shift/Win按住的状态

+s::Send {Blind}abc

在按下shift+S的时候,原本是输出abc,但是由于send中第一个是{Blind},那么按下的shift键的down按下状态会一直保持,所以输出的是ABC

实用按键推荐: 把 ` 键映射成回车键,方便左手回车

`::enter

个人觉得最实用的就是这个功能了,因为长期使用电脑的人都知道,回车键是我们工作学习中用得最多的按键,而右手经常需要控制鼠标,两个回车键全在右侧,导致回车按键按起来不方便,所以把数字1左侧的这个点的按键映射成回车非常实用

映射按键的开关

比如要关闭刚才的映射a::b,可以再另一段内部加上如下功能

+F8::
Hotkey, *a, off
Hotkey, *a up, off
Return

只管关闭*a*a up即可,因为a::b实际上就是折分成这两个

大小写反向映射

a::B

其结果是这样, 按下的小写输出大写,按下大写输出小写

  • a=B
  • A=b

使用虚拟键码准确指向按键

sc01e::vk42sc030

上面一行相当于 a::b

  • VK是虚拟键码(十六进制) 两位数
  • SC键盘扫描码(十六进制) 三位数
  • 单独写可以,两种表示方法一起写也可以
  • 可以在主窗口的 View->Key history 菜单项找到刚刚按下的按键的键码表,如若找不到,把虚拟键码从十进制转成16进制一样可以得到
  • 必须用VK/SC表示的三个键:{ } %
  • 映射不支持三个键: 鼠标滚轮 (WheelUp/Down/Left/Right) 和 PauseBreak

禁用按键

;禁用WIN键和F1键示例

;LWin::Return
;F1::return 会禁用 F1 键

映射组合键

把右CTRL映射成CTRL+ALT+A

;RCtrl::^!a

鼠标按键映射

鼠标映射键盘

把鼠标右键映射成WIN键

RButton::LWIN

键盘映射鼠标

WIN键+上下左右控制鼠标上下左右移动

*#up::MouseMove, 0, -10, 0, R  ; Win+UpArrow 热键 => 上移光标
*#Down::MouseMove, 0, 10, 0, R  ; Win+DownArrow => 下移光标
*#Left::MouseMove, -10, 0, 0, R  ; Win+LeftArrow => 左移光标
*#Right::MouseMove, 10, 0, 0, R  ; Win+RightArrow => 右移光标

请添加图片描述

键盘模拟鼠标左击和右击

*<#LCtrl:: 
SendEvent {Blind}{LButton down}
KeyWait # ; 防止键盘自动重复导致的重复鼠标点击.
SendEvent {Blind}{LButton up}
return

*<#Alt::  
SendEvent {Blind}{RButton down}
KeyWait alt  ; 防止键盘自动重复导致重复的鼠标点击.
SendEvent {Blind}{RButton up}
return

LWIN+LCTRL = 鼠标左击
LWIN+LALT = 鼠标右击

映射的有条件生效

因为映射对键盘的影响默认是无条件生效(全局热键),所以这种操作我们大部分时候都要把它局限在某个条件之中,否则反而会带来负作用

#IfWinActive ahk_class Notepad
 a::b
#IfWinActive  ;结束符

让 ‘a’ 键到 ‘b’ 键的映射仅在记事本中有效.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1921947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【刷题汇总 --游游的水果大礼包、买卖股票的最好时机(二)、倒置字符串】

C日常刷题积累 今日刷题汇总 - day0111、游游的水果大礼包1.1、题目1.2、思路1.3、程序实现 2、买卖股票的最好时机(二)2.1、题目2.2、思路2.3、程序实现 3、倒置字符串3.1、题目3.2、思路3.3、程序实现 -- c语言3.4、程序实现 -- c 4、题目链接 今日刷题汇总 - day011 1、游游…

U盘打不开的终极解决方案:原因剖析、恢复策略与预防之道

U盘困境&#xff1a;打不开的焦虑与应对 在数字化时代&#xff0c;U盘作为数据交换与存储的重要工具&#xff0c;几乎成为了每个人工作、学习和生活中的必需品。然而&#xff0c;当您满怀期待地将U盘插入电脑&#xff0c;却遭遇“无法识别”、“无法访问”等提示&#xff0c;U…

安装isce2

今天再次尝试安装&#xff0c;之前试过2次都是卡在同一步&#xff0c;今天换成了用mamba conda就没有再报错了 全程参考云军老师的step by step教程&#xff0c;安装成功 GitHub - yunjunz/conda-envs: conda environment setup on Linux / macOS for InSAR data processing …

初识Spring Web MVC

1. 什么是 Spring Web MVC&#xff1f; Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc)&#xff0c;但它通常被称为"SpringMVC".Servlet&am…

宝马退出价格战,19万买不到i3了

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 宝马退出价格战 这一消息&#xff0c;源自知名汽车博主孙少军。 7月11日他发文称&#xff0c;“因价格战导致门店亏损严重&#xff0c;宝马7月将会开始降量保价。” 第二天他又做了补充&#xff0c…

SQL,python,knime将数据混合的文字数字拆出来,合并计算实战

将下面将数据混合的文字数字拆出来&#xff0c;合并计算 一、SQL解决&#xff1a; ---创建表插入数据 CREATE TABLE original_data (id INT AUTO_INCREMENT PRIMARY KEY,city VARCHAR(255),value DECIMAL(10, 2) );INSERT INTO original_data (city, value) VALUES (上海0.5…

如何判断代码是否是在UPDATE TASK的Session中执行?

1. 背景 有时我们想控制ABAP代码在UPDATE TASK中的逻辑&#xff0c;例如某些逻辑执行&#xff0c;某些逻辑不执行。 那么&#xff0c;我们应该如何判断当前代码运行的环境呢&#xff1f;也即&#xff0c;怎么知道一段运行时代码是运行在当前的ABAP session中&#xff0c;还是…

红帽官方福利:RHCE赠送免费补考

RHCE 红帽官方活动【免费补考来了】 新班 7月27日 RHCE 周末班 学完9月底考试&#xff0c;享受免费补考&#xff01; RHCE9.0 &#xff08;点击查看课程介绍&#xff09; 上课课时&#xff1a;72课时/12天考试辅导1-2天 开班频率&#xff1a;2个月开一期 最新新班&#x…

高精度定位与AI技术的深度融合——未来智慧世界的钥匙

引言在当今迅速发展的科技时代&#xff0c;精确定位和人工智能&#xff08;AI&#xff09;技术正在快速推动各领域的创新与变革。高精度定位结合AI技术所产生的融合效应&#xff0c;正在加速智慧城市、智能驾驶、智能物流以及许多其他领域的实现。这篇文章将详细探讨高精度定位…

栈(Stack)与队列(Queue,Deque)

前言&#xff1a; 栈与队列在数据结构中用法都相对比较简单&#xff0c;是数据结构中经常用到的两种。 1.栈&#xff08;Stack&#xff09; &#xff08;1&#xff09;特点&#xff1a; 先入后出&#xff0c;后入先出。栈的底层就是一个数组&#xff08;java原生库中&#x…

uniapp发送Form Data格式请求

设置header的Content-Type为 application/x-www-form-urlencoded 即可 uni.request({url: , // 接口urldata: {input: 写一篇一千字的作文}, // 入参method: POST, // 参数类型header: {"Content-Type": "application/x-www-form-urlencoded"}, // 请求头…

本地部署,isNet 图像背景去除

目录 摘要 引言 ISNet 架构 关键组件 技术原理 本地部署 运行结果 结论 参考文献 GitHub - xuebinqin/DIS: This is the repo for our new project Highly Accurate Dichotomous Image SegmentationThis is the repo for our new project Highly Accurate Dichotomous…

介绍一款数据准实时复制(CDC)中间件 `Debezium`

简介 文章开头先介绍一下什么是CDC。数据准实时复制(CDC)是目前行内实时数据需求大量使用的技术。常用的中间件有Canal、Debezium、Flink CDC等 下面我们做一下对比 各有优缺点吧,本主要介绍一下Debezium中间件。 Debezium是什么 Debezium是一个为变更数据捕获(CDC)提供…

220.贪心算法:根据身高重建队列(力扣)

代码解决 class Solution { public:// 定义排序规则&#xff1a;首先按身高降序排序&#xff0c;如果身高相同则按k值升序排序static bool cmp(const vector<int>&a, const vector<int>&b){if (a[0] b[0]) return a[1] < b[1]; // 如果身高相同&#…

注册自定义总线

1、在/sys/bus下注册一个自定义总线 #include<linux/module.h> #include<linux/init.h> #include<linux/kernel.h> #include<linux/kobject.h> #include<linux/slab.h> #include<linux/sysfs.h> #include<linux/device.h> #include…

【Linux】1w详解如何实现一个简单的shell

目录 实现思路 1. 交互 获取命令行 2. 子串分割 解析命令行 3. 指令的判断 内建命令 4. 普通命令的执行 补充&#xff1a;vim 文本替换 整体代码 重点思考 1.getenv和putenv是什么意思 2.代码extern char **environ; 3.内建命令是什么 4.lastcode WEXITSTATUS(sta…

Java-final关键字详解

Java-final关键字详解 一、引言 二、什么是 final 关键字&#xff1f; 三、final 变量 final 局部变量 final 实例变量 final 静态变量 四、final 方法 五、final 类 六、final 关键字的实际应用 1. 定义常量 2. 防止方法被重写 3. 创建不可变类 4. 优化性能 七、…

GitHub网页打开慢的解决办法

有时候看资料絮叨github网页打不开&#xff0c;经百度后&#xff0c;发下下面的方法有效。 1&#xff09;获取github官网ip 我们首先要获取github官网的ip地址&#xff0c;方法就是打开cmd&#xff0c;然后ping 找到github的地址&#xff1a;20.205.243.166 2&#xff09;配…

数据结构(Java):队列Queue集合力扣面试OJ题

1、队列 1.1 队列的概念 队列是一个特殊的线性表&#xff0c;只允许在一端&#xff08;队尾&#xff09;进行插入数据操作&#xff0c;在另一端&#xff08;对头&#xff09;进行删除数据。队列具有先进先出FIFO(First In First Out)的特性。 入队&#xff1a;数据只能从队尾…

【办公软件】PPT使用轮子动画做圈动作

在实际的PPT制作中&#xff0c;我们可能会用到画圈的动作来强调重点。如下所示为最基础的画圈动作。 那么如何来做一个这样的动作呢&#xff1f; 首先在PPT中选择插入&#xff0c;选择形状椭圆 然后按Shift画图&#xff0c;即可画出一个正圆 然后使用绘图工具&#xff0c;将开关…