罗技鼠标宏简单攻略

主要是搓FF14的生产,然后实在是太肝了(还记错同学的话,没用宏……真的是肝爆,千万记得用宏)

宏的简单用法

因为我也就是拿来简化下操作,所以就是简单记录下。以下所有数据均来自罗技G502鼠标实测。

宏的触发

打开罗技鼠标的管理程序,直接右击配置文件即可进入脚本编写页面,默认应该是这样的:

1
2
3
4
function OnEvent(event, arg)
--OutputLogMessage("event = %s, arg = %s\n", event, arg);

end

对,就这一个触发函数,所有的鼠标动作和按键的判断全部在这里完成,用的是lua语言。

这里可以发现函数只有两个参数,分别是event和arg这两个参数,event代表的事件的类型,比如按键按下啊,松开啊这种的,而arg是一个数字,每个数字代表了鼠标不同的按键,这两个组合在一起就能够判断什么按键进行了什么操作。其实还有一个family参数,但是我的鼠标没有,也懒得去研究了。

event我实际只用到了两个值:

  • MOUSE_BUTTON_PRESSED
  • MOUSE_BUTTON_RELEASED

看字面意思就知道,一个是鼠标按下的时候触发,另外一个是鼠标松开的时候触发。

而arg数字所对应的按键如下所示:

  • 1 -> 鼠标左键,但是无效
  • 2 -> 鼠标中键,但是无效
  • 3 -> 鼠标右键,但是无效
  • 4 -> 鼠标上的g4
  • 5 -> 鼠标上的g5
  • 6 -> 鼠标上的准星键,即侧边最前面的那个
  • 7 -> 鼠标上的g7
  • 8 -> 鼠标上的g8
  • 9 -> 鼠标上的g9

OK所以有了上面的内容就可以很简单的通过if语句进行判断,是哪个按键按下/松开,并在其中写入对应的逻辑。

常用逻辑函数解释

  • Sleep( timeout ); 以毫秒为单位的睡眠时间,最常用的一个函数了吧,因为一般来说都是需要控制鼠标按键稍微停一下然后继续接下来的操作,举例Sleep(1000); 停止一秒再进行之后的操作。
  • OutputLogMessage(); 输出到控制台,举例:OutputLogMessage("Hello World %d\n", 2007); 跟C语言一样,只是可以不用最后的分号。
  • PressKey() 按下指定的按键,注意,只是按下,并不松开。举例:PressKey("Y"); 按下按键Y。
  • ReleaseKey() 松开指定的按键,一般和PressKey() 配套使用举例:ReleaseKey("Y"); 松开按键Y。
  • PressAndReleaseKey() 按下并且马上松开按键,这个才是用的最多的,因为它模拟的是我们日常中的对键盘使用。举例:PressAndReleaseKey("Y"); 按下并且松开Y。
  • PressMouseButton() 模拟鼠标按键,数字对应的键位和上面的是一样的,和按键一样,也只是按下鼠标,没有松开。举例:PressMouseButton(1) 按下鼠标的左键。
  • ReleaseMouseButton() 模拟鼠标按键松开。
  • PressAndReleaseMouseButton() 模拟鼠标按下并松开一次。
  • IsMouseButtonPressed() 判断鼠标某个键是否被按下,是的话返回true,否则返回false

其实还支持鼠标移动,但是我FF14用不到,所以这里就不贴了,有了这些函数,足够写出省时省力的生产用宏了。