吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 25101|回复: 77
收起左侧

[其他原创] 聊一聊坑爹的罗技鼠标宏API,以及推荐一下本人写的罗技宏框架

  [复制链接]
kiccer 发表于 2020-1-15 14:40
本帖最后由 kiccer 于 2020-1-15 14:48 编辑

不知道有多少人自己试着写过罗技鼠标宏的脚本,我写过一个,那可是想当的痛苦呐!无数次掉进坑里- -

首先,这个罗技的API命名是真的让人头大。。
OutputLogMessageOutputLCDMessageOutputDebugMessage (这三胞胎长得又像名字又长)
PressKeyReleaseKeyPressAndReleaseKey (直接用 And 连起来是不是太随意了?)
MoveMouseToMoveMouseRelativeMoveMouseToVirtualMoveMouseWheel (一样长得离谱。。)


像我这样的渣渣英文水平,光是背API里的单词都要额外的负担- -
实际开发时写这么一长串的字母也是显得效率低下——


所以,为了提高开发效率,我分别给他们分别起了小名:


logMsglcdMsgdebugMsg (前面的 Output 去掉,一眼可以看出区别了,后面的 Message 也进行缩写)
keyDownkeyUpkeyTap (意思很直接,按键按下,按键弹起,按键轻击,简单明了)
moveTomovemoveToThiswheel (带to的绝对移动,不带to的相对移动,最后这个wheel滚轮压根和move没关系吧??这命名惯性思维了?)


现在再看,API已经简短了许多。
当然不止这些,所有的API都可以重命名,有些API甚至可以多个整合成一个,比如啊


IsMouseButtonPressed IsModifierPressed 这两个方法都是用来判断“是否是按住状态”的
但前者判断的是鼠标是否按住,而且参数只接受 1 ~ 5 的数字
而后者判断的是键盘是否按住,而且参数只接受 lctrllatllshift……等共6种修饰键,9种描述方式的字符串
发现了吗?我们其实根据传入的参数数据类型进行判断,就可以区分开来两个方法,因此整合成一个方法是完全可行的!
整合后的方法将其命名为 isPressed 是否更好记忆了呢?


除了API这些坑点,罗技在获取鼠标键位时也有一个致命坑点。
举个栗子:


[Lua] 纯文本查看 复制代码
function OnEvent (event, arg, family)
  OutputLogMessage(arg)
end



这段代码运行后,你按鼠标左键,显示1,你按中间,显示3,你按右键显示2
但是如果你使用罗技的 API - IsMouseButtonPressed 判断鼠标键是否按住时,
传入的参数1代表左键,但是2代表的是中键,3代表的才是右键!
这是不是很搞脑子??
聪明的做法是使用


[Lua] 纯文本查看 复制代码
if arg == 2 then arg = 3 elseif arg == 3 then arg = 2 end



进行一次转换。
但是现在,你们有另一种方法了:
直接使用


[Lua] 纯文本查看 复制代码
lmf.on("load", function (e)
        console.log("hello world")
end)



上面代码相当于



[Lua] 纯文本查看 复制代码
function OnEvent (event, arg, family)
  if event == "PROFILE_ACTIVATED" then
    OutputLogMessage("hello world\n")
  end
end


lmf.on 第一个参数是监听的事件,第二个参数是一个回调方法。
lmf.on 重写了 event,并且回调方法还会接受一个包含各种信息的合集,其中 e.g 就是 arg,且已经使用上面提到的方法进行了转换。


当然,这个方法只有在我写的罗技宏框架里才可以使用~
有兴趣自己写鼠标宏的小伙伴可以关注一下我的框架——


github项目:https://github.com/kiccer/logitech-macro-frame


另外,这个项目起源于我的另一个项目:https://github.com/kiccer/Soldier76
(这个是吃鸡鼠标宏项目,目前 Star 200+,github上唯一保持活跃的罗技吃鸡鼠标宏脚本项目)


希望各位多多支持~



免费评分

参与人数 18吾爱币 +16 热心值 +16 收起 理由
残梦乄弑魂 + 1 + 1 厉害了我的哥
Giaon + 1 我很赞同!
寻找bug的猿人Q + 1 + 1 谢谢@Thanks!
若白驹过隙 + 1 + 1 谢谢@Thanks!
kyonlue + 1 + 1 用心讨论,共获提升!
我不该爱你的 + 1 谢谢@Thanks!
纸上谈兵丶无异 + 1 + 1 我很赞同!
李子晓 + 1 + 1 谢谢@Thanks!
Gmimi + 1 + 1 大佬,想问问你的github项目具体使用方法
zuoluo1116 + 1 + 1 大佬求放群
wuaiNB + 1 + 1 大佬求放进群
JokerJorrr + 1 + 1 正在学习中
a417188702 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
渐行渐远i + 1 用心讨论,共获提升!
琴响曲终伤人意 + 1 + 1 用心讨论,共获提升!
yc19951005 + 1 + 1 我很赞同!
a1594324 + 1 + 1 热心回复!
洛音 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

eebill 发表于 2020-1-15 15:56
撒犯得上发生发射点发生范德萨发生发生

免费评分

参与人数 8吾爱币 -16 热心值 +1 收起 理由
starrysky188 + 1 + 1 我很赞同!
\CPU\ -2 广告贴,请遵守论坛版规!
godmodel -1 此为违规行为,请遵守论坛版规!
无影 -1 请勿灌水,提高回帖质量是每位会员应尽的义务!
苏紫方璇 -10 请勿灌水,提高回帖质量是每位会员应尽的义务!
若无zz -1 请勿灌水,提高回帖质量是每位会员应尽的义务!
alicc -1 热心回复!
FleTime -1 请勿灌水,提高回帖质量是每位会员应尽的义务!

查看全部评分

alicc 发表于 2020-1-15 16:35
chenhsu 发表于 2020-1-15 16:00
厉害了,不过通过你让我知道了这么牛逼的宏地址,我要试一试,哈哈哈
Aleshaaaa 发表于 2020-1-15 15:27
动手能力强~
yu13740000 发表于 2020-1-15 15:29
厉害啊哥
WD丶活着 发表于 2020-1-15 15:39
我来康康
头像被屏蔽
CSGO01 发表于 2020-1-15 16:05
提示: 作者被禁止或删除 内容自动屏蔽
yc19951005 发表于 2020-1-15 16:23
除了吃鸡 还有没有其他的宏
rosoon 发表于 2020-1-15 16:23
赞一个~~!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 08:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表