# logitech
**Repository Path**: wangbh2019/logitech
## Basic Information
- **Project Name**: logitech
- **Description**: 罗技宏框架 - 提炼自 kiccer/Soldier76 项目
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2024-08-23
- **Last Updated**: 2024-08-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Logitech Macro Frame
罗技宏框架,以降低开发成本、
提高代码可维护性、可阅读性为宗旨,
为开发者提供更方便的API和更实用的方法。
欢迎Star⭐,您的支持就是我更新的最大动力!
---
> 项目提炼自 kiccer/[Soldier76](https://github.com/kiccer/Soldier76)
### 前言
编写过罗技鼠标宏脚本的开发者都知道,罗技宏的开发过程十分坎坷,且进度缓慢:难以记忆的API、自相矛盾的设计、阉割的语言……
正是因为这些诸多不足,所以此框架才应运而生。在此框架中,完善了一些原生API的缺陷,甚至将多个API整合成一个,此外还提供了很多非常实用的方法。使用此框架后,你将获得全新的编写体验。
第一次写罗技宏脚本?没问题!你完全不需要去了解原始的编写方式,使用此框架就够了。
### 获取项目
点击右上角的 `Fork` 即可获取本项目。
`Fork` 之后进入自己的项目里,然后修改项目名,再使用 `git` 工具拉取到本地,即可上手开发。
开发时请注意编写区域,代码中有三块主要区域: **脚本使用者配置** 、 **框架核心代码** 以及 **脚本编写区**。
请看清注释提示,尽量不要改动 **框架核心代码**。
**脚本使用者配置** 和 **脚本编写区** 可以自由修改。
### 开发技巧
在此框架中,使用 `lmf.on` 来监听事件:
```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` 方法接受两个参数: **eventName** 、 **callback**
可供选择的监听事件(**eventName**)有:
* `load` - 监听 **脚本加载** 事件
* `unload` - 监听 **脚本退出** 事件
* `mousedown` - 监听 **鼠标按下** 事件
* `mouseup` - 监听 **鼠标弹起** 事件
* `gkeydown` - 监听 **G键按下** 事件
* `gkeyup` - 监听 **G键弹起** 事件
* `mkeydown` - 监听 **M键按下** 事件
* `mkeyup` - 监听 **M键弹起** 事件
第二个参数(**callback**)是一个回调函数,该函数将会在监听的事件触发时被调用,并获得一个参数(e),参数内容如下:
```Lua
{
capslock = false, -- 大写锁定键是否开启
scrolllock = false, -- 滚动锁定是否开启
numlock = true, -- 小键盘锁定是否开启
modifier = {}, -- 哪些修饰键是按住的状态 (lalt、lctrl、lshift、ralt、rctrl、rshift)
family = "other", -- 触发事件的设备 (鼠标或其他)
g = 0, -- 触发事件的 G 键,包括鼠标、键盘、耳机等
event = "load", -- 触发的事件
pressed = {} -- 哪些 G 键是按住的状态 (仅支持判断 g1、g2、g3、g4、g5 五个鼠标 G 键)
}
```
### 参考文档
* [标准 Lua 5.1 库](./docs/lua5.1.md)
* [框架API(基于原生重写/重命名)](./docs/api.md)
* [罗技宏框架内置方法](./docs/lmf.md)
* [扩展方法(table篇)](./docs/table.md)
* [扩展方法(string篇)](./docs/string.md)
### 许可声明
* 本框架脚本使用 **MIT** 许可,允许商用,允许二次开发后出售。
### 交流群
* 欢迎加入技术交流QQ群:[](https://kiccer.github.io/Soldier76/static/join_group.html) ([768483124](https://kiccer.github.io/Soldier76/static/join_group.html))
### 问题反馈
* 使用框架时有任何疑问,或框架存在不足之处可以在 [`Issues`](https://github.com/kiccer/logitech-macro-frame/issues) 反馈给我
### 谁使用了此框架
* 暂无...
---
\* *另,作者Lua语言的水平仅有入门水准,如果发现代码中有任何可改进的地方,欢迎提交PR!*