
前言
进入最近十年后,我们的鼠标发展迅速。随着鼠标性能的提高和解决方案的多样化,鼠标可以在履行其功能的前提下提供更多的按钮和自定义功能。
如果您是FPS播放器,则必须听说有一个名为macro的东西,它可以使AK和M4像插件软件一样稳定。然后,无论宏是否为插件,宏实现是否遥不可及,如果我们要编写一个宏操作该怎么办?这次,我将讨论什么是宏,如何实现以及如何使用它。
什么是宏
什么是宏?目前,每个人都在谈论的是宏(Macro)。实际上,即使是脚本和执行程序,百度·拜克也说计算机科学中的宏是一种抽象,它基于一系列预定义的规则来替换某些文本模式,那么这句话是什么意思?粗略地讲,例如,今天我定义UP + 4,即鼠标向上移动4个像素,然后将此句子写到文档中,程序读取文档中的句子,鼠标向上移动4个像素。
这里写的文字是脚本。这里的脚本是Macro。它们具有相同的含义,就像菠萝和菠萝(福建话中菠萝的发音)
宏的实现方式
宏的实现离不开软件的支持。鼠标驱动程序实际上符合USB协议。鼠标,键盘和操纵杆等HID设备在当前和以前的USB下都没有驱动器,并且控制软件可以由鼠标控制。键盘与驱动器配合实现我们所需的各种功能
我刚刚说过,鼠标和键盘宏的实现只不过是软件。控制软件可以间接调用驱动程序以达到其目的。例如,如前一段所述,指针可以移动4个像素。由于设备性能的提高,我们可以使用鼠标执行脚本,也可以将脚本保存在鼠标上。毕竟,将这些字符存储在鼠标存储空间中很容易。
当然,可能会进行编译或文本压缩,类似于伪代码。
一般来说,我个人认为有几种形式,一种是控制软件本身与驱动程序链接,另一种是控制软件本身仅与鼠标通信,并且鼠标在其上执行并通过驱动程序软件实现。
什么是真正的鼠标宏?
鼠标宏实际上看起来像程序代码,但它们是伪代码和脚本。例如,罗技(Logitech)的全系列G系列,该控制软件支持Lua脚本,该脚本经常在RPG和其他游戏中使用脚本语言
我从互联网上找到一个Logitech鼠标压力宏,并将其用作本示例。因为使用了XML格式,所以我们可以简单地打开它。图片的这一部分主要是鼠标配置文件
向下拖动,您将看到脚本的一部分,密集部分很难查看,因为该部分是由控制软件读取的,因此没有前一部分的证据
一般来说,我认为Logitech的配置文件由三部分组成,按钮名称定义,鼠标配置c包括每个档位的DPi,灯光的亮度颜色,模型以及脚本。
如何编写鼠标宏
鼠标宏,许多玩家可能会感到恶心后觉得这东西很臭,但是技术就是技术,人们被指责使用它。自定义按钮的初始宣传点用在MMORPG中,例如WOW。中级技能发布可以通过按下键的一键记录来触发,而宏提供了更高级的形式。释放后,角色会自动移动,并且由于它是驱动程序级别,因此不会被检测为插件。
这里以G9X设备为例。考虑到软件的成熟度,不使用Logitech G HUB控制软件,而使用较早的Logitech游戏软件版本9.0。
普通的录制宏就是这样,它可以实现键盘按键的录制,并可以完成一系列功能,例如输入密码,例如打开浏览器的一键等,这是板载存储模式
如果使用Lua脚本宏,则可以实现更复杂的功能,并使人们感到“这是一个宏”。以下是宏的示例,我将尽力使每个人都理解
function OnEvent(event,arg)
如果(event ==“ PROFILE_ACTIVATED”)然后
-配置文件已被激活
结束
结束
激活配置文件后,将运行上述宏。当然,本节不执行任何功能。它是空的。如果要执行某些操作,则必须在其中添加一些内容。
让我们了解一些常用的“事物”,在宏文件中是EVENT
G_PRESSED按下G系列按钮,Logitech键盘上有很多G系列自定义键
释放G_RELEASED G按钮

M_PRESSED按下M系列按钮
M_RELEASED M系列按钮释放
按下了MOUSE_BUTTON_ PRESSED鼠标键
MOUSE_BUTTON_RELEASED释放鼠标按钮,这是您放开手指的时间
现在让我们编写一个简单的宏,然后打开txt文本编辑器。当然,我建议您使用Windows 10随附的代码编辑器将它们复制到其中。
函数OnEvent(event,arg)
if(event ==“ MOUSE_BUTTON_PRESSED”和arg ==2)然后
OutputLogMessage(“按下鼠标按钮2”);
结束
结束
然后保存文件,这做得很好,您现在已经掌握了如何编写和保存宏!这是一个很大的进步
现在,您可以打开控制软件。为了打开强大的功能,我们必须将其设置为使用PC端控制软件来实现该功能。
进入宏编辑界面并创建一个新的配置文件。由于这是实验,因此只会在Notepad.exe中生效。
保存后,界面如下,我们可以尝试导入宏,当然还没有时间。
右键单击配置文件的图标,第七项,编写脚本
弹出以下窗口,您可以在此处编辑宏
您不只是保存文本文件吗?复制过来看看
Ctrl + S保存宏,然后您可以在“记事本”窗口中进行实验。按下鼠标右键,下面将显示一句话来提示我们进行设置。所有问号都是正常的,因为没有字体库,我只是写了它以便于理解
当然您应该了解这一点。必须将事件添加arg的值,使其等于指定的按钮。例如,与鼠标事件+按钮相对应的值等于哪个按钮是特定按钮。键盘的G按钮也相同。鼠标左键是1,右键是2,中间键是3,其他鼠标也一样。至于自定义按钮,请自己尝试
然后我们可以编写一些令人兴奋的内容,例如了解如何使用鼠标宏按下支
使用鼠标宏按下支
实际上,为了保护操作,不能将左键绑定到脚本。鼠标必须具有一个必须设置为左键的按钮。您还应该发现在刚刚编写脚本的界面中无法识别到左键。因此,我们必须重置鼠标
将侧面按钮上的一个按钮设置为鼠标的左键
可以将鼠标左键随意设置为其他按钮
此也会改变,我想你们不会看着它,只需复制并尝试一下
function OnEvent(event,arg)
如果(事件==“ PROFILE_ACTIVATED”),则
EnablePrimaryMouseButtonEvents(true)
elseif event ==“ PROFILE_DEACTIVATED”然后
IsOnClick = false
结束
if(event ==“ MOUSE_BUTTON_PRESSED”和arg ==1)然后
IsOnClick =不是IsOnClick-用于记录鼠标点击
AK()
结束
如果(事件==“ MOUSE_BUTTON_RELEASED”和arg ==1),则
IsOnClick = false-释放按钮时,向下移动的宏无效
OutputLogMessage(“发布”)
结束
结束
函数AK()
ShotTime = 0-这是按下左键的时间
重复
如果(IsMouseButtonPressed(1)),然后
如果ShotTime
MoveMouseRelative(0,2. 5)
elseif ShotTime
MoveMouseRelative(0,4.5)
else-其他时间,例如,当时间大于2400单位时,将5.5个位置移动
MoveMouseRelative(0,5.5)
结束
结束
ShotTime = ShotTime + 30
睡眠(30)
直到(不是IsOnClick)
结束
如果您要切换,即有时需要使用它,有时不使用gun宏,那么我们将设置一个侧面按钮来解决此问题,并将其用于启用或禁用宏
function OnEvent(event,arg)
如果(事件==“ PROFILE_ACTIVATED”),则
EnablePrimaryMouseButtonEvents(true)
MacroState = false-用于切换支宏
elseif event ==“ PROFILE_DEACTIVATED”然后

IsOnClick = false
结束
if(event ==“ MOUSE_BUTTON_PRESSED”和arg ==1)然后
IsOnClick =不是IsOnClick-用于记录鼠标点击
AK()
结束
如果(事件==“ MOUSE_BUTTON_RELEASED”和arg ==1),则
IsOnClick = false-释放按钮时,向下移动的宏无效
结束
如果(事件==“ MOUSE_BUTTON_PRESSED”和arg == 5),则
-按下侧面按钮时,请切换启用宏的开关,以控制压力的启用和停用
如果不是MacroState,那么
OutputLogMessage(“打开宏”)
MacroState =不是MacroState
其他
OutputLogMessage(“关闭宏”)
MacroState =不是MacroState
结束
结束
结束
函数AK()
ShotTime = 0-这是按下左键的时间
重复
如果是(IsMouseButtonPressed(1)和MacroState),则-如果按下按钮,并且宏开关处于打开状态,则执行
如果ShotTime
MoveMouseRelative(0,2. 5)
elseif ShotTime
MoveMouseRelative(0,4.5)
else-其他时间,例如当时间大于2400单位时,将5.5个位置移动
MoveMouseRelative(0,5.5)
结束
结束
ShotTime = ShotTime + 30-此处按左键的持续时间在此处更改,应根据暂停时间进行修改
睡眠(30)
直到(不是IsOnClick)-鼠标已被举起,退出
结束
如何切换支以适应不同的支?通过它就足够了,我不会写
摘要
Logitech宏使用Lua脚本。我个人认为编写难度和可读性还不错。当然,如果您从未接触过代码和脚本,那将是非常困难的,至少从一开始就很难。在句子的开头会感到头痛是很正常的。如果您在阅读后理解它,那么恭喜。我认为您占人口的2%。是的,我认为只有2%的人可以理解。
也许您在这里还有一些问题,例如这里的宏是否是插件。当然,宏是一个插件。该宏最初属于外部程序的执行。当然,这不仅仅是纯D3D之类的软件(包括用于绘制透视图框架的UI),是的,还有一个非内存链接可以读取内存地址,这可能会更高级。在某种程度上,它是一个硬件插件,并通过驱动程序执行。
感谢收看
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-336198-1.html