Git Product home page Git Product logo

logitech-macro-frame's Introduction

Logitech Macro Frame

罗技宏框架,以降低开发成本、
提高代码可维护性、可阅读性为宗旨,
为开发者提供更方便的API和更实用的方法。
欢迎Star⭐,您的支持就是我更新的最大动力!

lua-5.1 logitech-✔ lgs-9.02.65 version-latest


项目提炼自 kiccer/Soldier76

前言

编写过罗技鼠标宏脚本的开发者都知道,罗技宏的开发过程十分坎坷,且进度缓慢:难以记忆的API、自相矛盾的设计、阉割的语言…… 正是因为这些诸多不足,所以此框架才应运而生。在此框架中,完善了一些原生API的缺陷,甚至将多个API整合成一个,此外还提供了很多非常实用的方法。使用此框架后,你将获得全新的编写体验。

第一次写罗技宏脚本?没问题!你完全不需要去了解原始的编写方式,使用此框架就够了。

获取项目

点击右上角的 Fork 即可获取本项目。

Fork 之后进入自己的项目里,然后修改项目名,再使用 git 工具拉取到本地,即可上手开发。

开发时请注意编写区域,代码中有三块主要区域: 脚本使用者配置框架核心代码 以及 脚本编写区

请看清注释提示,尽量不要改动 框架核心代码

脚本使用者配置脚本编写区 可以自由修改。

开发技巧

在此框架中,使用 lmf.on 来监听事件:

lmf.on("load", function (e)
	console.log("hello world")
end)

这段代码的效果其实就是相当于:

function OnEvent (event, arg, family)
  if event == "PROFILE_ACTIVATED" then
    OutputLogMessage("hello world\n")
  end
end

lmf.on 方法接受两个参数: eventNamecallback

可供选择的监听事件(eventName)有:

  • load - 监听 脚本加载 事件
  • unload - 监听 脚本退出 事件
  • mousedown - 监听 鼠标按下 事件
  • mouseup - 监听 鼠标弹起 事件
  • gkeydown - 监听 G键按下 事件
  • gkeyup - 监听 G键弹起 事件
  • mkeydown - 监听 M键按下 事件
  • mkeyup - 监听 M键弹起 事件

第二个参数(callback)是一个回调函数,该函数将会在监听的事件触发时被调用,并获得一个参数(e),参数内容如下:

{
     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 键)
}

参考文档

许可声明

  • 本框架脚本使用 MIT 许可,允许商用,允许二次开发后出售。

交流群

  • 欢迎加入技术交流QQ群:logitech 鼠标宏技术交流 (768483124)

问题反馈

  • 使用框架时有任何疑问,或框架存在不足之处可以在 Issues 反馈给我

谁使用了此框架

  • 暂无...

* 另,作者Lua语言的水平仅有入门水准,如果发现代码中有任何可改进的地方,欢迎提交PR!

logitech-macro-frame's People

Contributors

kiccer avatar yhyqcb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

logitech-macro-frame's Issues

请问Mkey代表什么

请问Mkey代表什么,看了看官方文档没看明白代表的含义,看到在lua中有一段连点的示例

-- 按住左键连点效果实现范例 (开启大写生效)
 local G1 = false

 lmf.on("mousedown", function (e)
 	-- console.log(e)
 	if e.g == 1 and e.capslock then
 		G1 = true
 		setM(1)
 	end
 end)

 lmf.on("mkeydown", function (e)
 	if G1 and e.capslock then
 		setM(1)
 		mouseTap(1)
 	end
 end)

 lmf.on("mouseup", function (e)
 	if e.g == 1 then
 		G1 = false
 	end
 end)

 console.log(lmf)

不是很明白为何要设置Mkey

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.