利用AutoHotkey实现变态的鼠标映射

工作需求,经常要用到无线演示器在大屏幕上演示一些东西,不幸的是,其中一个软件需要使用鼠标滚轮才能操作,而无线演示器和无线鼠标的区别之一也正是没有滚轮。于是乎,让无线演示器具有鼠标滚轮的功能成了需要解决的问题。

无线演示器

改装无线演示器的硬件,修改软件的操作快捷键,相对来说都不那么容易,于是转换思路希望将无线演示器上其它不常用的按键映射为鼠标滚轮。首先尝试多年来一直使用的KeyTweak,支持键盘的自定义映射,原理是直接修改系统注册表,稳定、无额外资源占用。可惜的是虽然KeyTweak可以捕捉到无线演示器上的按键响应,但却无法映射为鼠标的动作。继续Google,找到了鼠标专用的X-Mouse Button Control,可以将鼠标的其它按键映射为滚轮操作,但却无法捕捉无线演示器的按键响应。最后,将目光移到了久仰大名的AutoHotkey上——同时支持按键的捕捉和键盘鼠标的映射。

早有耳闻AutoHotkey容易上手,在AutoHotkey中文社区的帮助下,差不多只用了一刻钟就实现了想要的功能,对开发没有基础的我也能轻松上手。

由于只用到“重映射按键和鼠标按钮”功能,参照着文档就能掌握基本写法,不过因为无线演示器的按键属于特殊按键,需要依照“按键, 鼠标按钮和操纵杆控制器的列表”提到的方法自定义一下。

新建一个包含键盘钩子(#InstallKeybdHook)的脚本,运行脚本,按下无线演示器的按键,在主窗口中点击菜单“View->Key history”查看刚刚按下的键值:

VK  SC Type Up/Dn Elapsed Key Window
-------------------------------------------------------------------------------------------------------------
6B  04E d 0.08 NumpadAdd     
6D  04A u 0.28 NumpadSub

其中“04E”和“04A”正是对应的键值,看到后面的描述,原来就是小键盘上的“+”和“-”。紧接着将键值映射为鼠标滚轮向上和向下的动作就大功告成了~脚本也简单到只有三行(其实只用到后面的两行):

#InstallKeybdHook
SC04E::WheelUp
SC04A::WheelDown

为了能让没有AutoHotkey环境的系统运行脚本,可以使用Ahk2Exe工具将“.ahk”脚本转换为Windows的“.exe”可执行程序:

Ahk2Exe Convert .ahk to .exe

甚至可以自定义编译后可执行程序的图标,这么大好的机会,当然要换上自己的图标显摆一下了~

自定义AutoHotkey可执行程序图标



    • amnesiac
    • 2012年3月27日 10:48下午

    赞一个, 很多人开始接触 AutoHotkey 好像都类似博主这样的场景.

    • 小佐
    • 2016年9月8日 11:50上午

    博主你好,请教一个问题
    ————————————–
    AutoHotKey映射键盘非系统快捷键失败

    想通过AutoHotKey映射键盘快捷键,软件默认的快捷键是ctrl+shift+F1,想映射成方便的win+F1;
    我写的代码如下:
    #f1::^!f1

    但是发现失败了;
    经过测试发现,键盘映射只能是系统内的快捷键映射才能生效,比如:
    ;win+f2 代替win+E打开系统资源管理器
    #f2::#e

    那怎么才能让非系统的快捷键也生效呢

  1. 还没有引用




 

无觅相关文章插件,快速提升流量