前提
昨天买个一个新鼠标,我非常的喜欢(logiM570)。新的鼠标多出来了两个按键,于是我就想着用这两个按键来实现切换任务视图,详情可以看这篇文章。
但是,一开始是找了半天,并没有找到可以修改按键,可能是M系列的原因,并没有G系列受到罗技的重视,虽然找了一圈没有找到,但是我依然觉得M570是可以修改按键的,于是我去淘宝的官方旗舰店里看M570的介绍,M570确实支持可编程按钮,下载SetPoint就可以。
下载了SetPoint软件。最难受的来了,打开这个软件,居然自定义按钮不能定义按钮,虽然、、都都支持,但都不是我想要的。
最后没有办法,就只好使用AutoHotKey来修改按键了。
我先来贴一下我的脚本代码
;XButton2等于按下ctrl + win + 左方向键XButton2::send, {win down}{ctrl down}{left}sleep 50send, {win up}{ctrl up}return;XButton1等于按下ctrl + win + 右方向键XButton1::send, {win down}{ctrl down}{right}sleep 50send, {win up}{ctrl up}return
稍微解释一下代码:
;注释对应按键或某个功能::对应代码return 结束
于是下面代码的解释为:
;XButton2等于按下ctrl + win + 左方向键XButton2:: ;按下XButton2这个按键将触发下面代码send, {lwin down}{ctrl down}{left} ;按下win+ctrl+左方向键sleep 50;等待50毫秒send, {lwin up}{ctrl up};松开win+ctrlreturn ;结束
注意到这里的win要指定方向,lwin和rwin都可以,ctrl可以不用指定。具体原因有待查证。
这样你创建一个Hello.ahk的文件,代码就放上面的代码,运行这个脚本文件就可以了。(前提是你电脑里有AutoHotKey这个程序和多个任务视图,先创建多个任务视图按住就可以创建一个任务视图了)
按键映射
官方对XButton1和XButton2的解释为鼠标的第四和第五个按钮,有些时候你想映射的键并不是这两个,但是你不知道那个键是哪一个。这里有一个很好的解决方法,使用鼠标钩子,这样你就可以在KeyHistory监视鼠标的点击,就可以把对应的按钮绑定上你想要的操作。
在刚刚的Hello.ahk文件中加上
InstallMouseHook
重新运行Hello.ahk文件,这样你的鼠标点击事件都会被记录下来,但是只有保留20条记录
上图是我开启后的结果,可以看到每一个按键都被记录了下来,这样你就可以根据自己的记录来找到对应的Key,如果你对应的按钮没有Key,就可以用相应的VK或者SC。
根据上图映射按键,我的代码可以改为
;XButton2等于按下ctrl + win + 左方向键VK06::send, {win down}{ctrl down}{left}sleep 50send, {win up}{ctrl up}return;XButton1等于按下ctrl + win + 右方向键VK05::send, {win down}{ctrl down}{right}sleep 50send, {win up}{ctrl up}return
2020-7-27 ,我将 映射成了 (可以看 按键映射 )。其原因是自己在打字的过程中使用的是 来切换输入法,但是有时候会单点到 就会跳出开始界面,效率就很低,所以就换了按键,换成 的原因是,不会造成冲突。下面是对应的 ahk 脚本:
; 将 F15 + 空格 映射成切换字符串(我将 LWin 映射成了 F15)F15 & Space::send, {lwin down}{space down}sleep 50send, {space up}{lwin up}return
参考资料
按键_鼠标按钮和操纵杆控制器的列表
InstallMouseHook
[Autohotkey入门]告诉那些按钮它们的使命是听话: 热键
