前提

昨天买个一个新鼠标,我非常的喜欢(logiM570)。新的鼠标多出来了两个按键,于是我就想着用这两个按键来实现切换任务视图,详情可以看这篇文章
但是,一开始是找了半天,并没有找到可以修改按键,可能是M系列的原因,并没有G系列受到罗技的重视,虽然找了一圈没有找到,但是我依然觉得M570是可以修改按键的,于是我去淘宝的官方旗舰店里看M570的介绍,M570确实支持可编程按钮,下载SetPoint就可以。
1578381694689
下载了SetPoint软件。最难受的来了,打开这个软件,居然自定义按钮不能定义按钮,虽然、、都都支持,但都不是我想要的。
最后没有办法,就只好使用AutoHotKey来修改按键了。
我先来贴一下我的脚本代码

  1. ;XButton2等于按下ctrl + win + 左方向键
  2. XButton2::
  3. send, {win down}{ctrl down}{left}
  4. sleep 50
  5. send, {win up}{ctrl up}
  6. return
  7. ;XButton1等于按下ctrl + win + 右方向键
  8. XButton1::
  9. send, {win down}{ctrl down}{right}
  10. sleep 50
  11. send, {win up}{ctrl up}
  12. return

稍微解释一下代码:

  1. ;注释
  2. 对应按键或某个功能::
  3. 对应代码
  4. return 结束

于是下面代码的解释为:

  1. ;XButton2等于按下ctrl + win + 左方向键
  2. XButton2:: ;按下XButton2这个按键将触发下面代码
  3. send, {lwin down}{ctrl down}{left} ;按下win+ctrl+左方向键
  4. sleep 50;等待50毫秒
  5. send, {lwin up}{ctrl up};松开win+ctrl
  6. return ;结束

注意到这里的win要指定方向,lwin和rwin都可以,ctrl可以不用指定。具体原因有待查证。
这样你创建一个Hello.ahk的文件,代码就放上面的代码,运行这个脚本文件就可以了。(前提是你电脑里有AutoHotKey这个程序和多个任务视图,先创建多个任务视图按住就可以创建一个任务视图了)
按键映射
官方对XButton1和XButton2的解释为鼠标的第四和第五个按钮,有些时候你想映射的键并不是这两个,但是你不知道那个键是哪一个。这里有一个很好的解决方法,使用鼠标钩子,这样你就可以在KeyHistory监视鼠标的点击,就可以把对应的按钮绑定上你想要的操作。
在刚刚的Hello.ahk文件中加上

InstallMouseHook

重新运行Hello.ahk文件,这样你的鼠标点击事件都会被记录下来,但是只有保留20条记录
1578387880022
上图是我开启后的结果,可以看到每一个按键都被记录了下来,这样你就可以根据自己的记录来找到对应的Key,如果你对应的按钮没有Key,就可以用相应的VK或者SC
根据上图映射按键,我的代码可以改为

  1. ;XButton2等于按下ctrl + win + 左方向键
  2. VK06::
  3. send, {win down}{ctrl down}{left}
  4. sleep 50
  5. send, {win up}{ctrl up}
  6. return
  7. ;XButton1等于按下ctrl + win + 右方向键
  8. VK05::
  9. send, {win down}{ctrl down}{right}
  10. sleep 50
  11. send, {win up}{ctrl up}
  12. return

2020-7-27 ,我将 映射成了 (可以看 按键映射 )。其原因是自己在打字的过程中使用的是 来切换输入法,但是有时候会单点到 就会跳出开始界面,效率就很低,所以就换了按键,换成 的原因是,不会造成冲突。下面是对应的 ahk 脚本:

  1. ; F15 + 空格 映射成切换字符串(我将 LWin 映射成了 F15
  2. F15 & Space::
  3. send, {lwin down}{space down}
  4. sleep 50
  5. send, {space up}{lwin up}
  6. return

参考资料

按键_鼠标按钮和操纵杆控制器的列表
InstallMouseHook
[Autohotkey入门]告诉那些按钮它们的使命是听话: 热键