使用 Lua 控制鼠标的 Winform 应用
2020-2-23 10:4:1
收藏:0
阅读:211
评论:1
我尝试使用 Logictech 鼠标发送字符串,就像 Logictech 提供的软件一样
我点击前进按钮它将发送字符串,但我无法使用 Winform 发送字符串并修改它
我发现 Logictech 有G-series Lua API
我试图使用 OnEvent 函数来控制鼠标点击以发送字符串
但我以前从未接触过 Lua。
这是我的 C# 代码
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using LuaInterface;
namespace LuaScript
{
public partial class Form1 : Form
{
public Lua lua = new Lua();
string var = "aabbcc";
public Form1()
{
InitializeComponent();
lua.DoFile("logitechSendString.lua");
object[] objs = lua.GetFunction("OnEvent").Call(this, var);
lua.Close();
}
}
}
我的 Lua 代码
function OnEvent(event, arg)
if (arg!=null)then
PressKey(arg)
ReleaseKey(arg)
Sleep(50)
PressMouseButton("Forward")
ReleaseMouseButton("Forward")
end
end
但是它会编译错误
System.IO.FileLoadException
HResult=0x80131621
Message=Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.
Source=LuaInterface
StackTrace:
LuaInterface.Lua..ctor()
LuaScript.Form1..ctor() D:\Visual Studio\LuaScript\LuaScript\Form1.cs: 15
LuaScript.Program.Main() D:\Visual Studio\LuaScript\LuaScript\Program.cs:19
如何解决这个错误?
如何使用 Lua 控制鼠标?
谢谢
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?


这是一种不需要C#的解决方案。
字符串“aabbcc”存储在LGS脚本中。
在您的个人资料子菜单中选择Scripting,并复制此Lua脚本:
-- 当用户按下中间鼠标按钮时,会发生以下情况: -- 1. 模拟输入字符串“aabbcc” -- 2. 模拟“向前”(X2)鼠标按钮的按下和释放 function OnEvent(event, arg, family) if event == "MOUSE_BUTTON_PRESSED" and arg == 3 then -- 按下中间鼠标按钮 PressAndReleaseKey("a", "a", "b", "b", "c", "c") -- 在此更改您的字符串 Sleep(50) -- 50毫秒等待 PressMouseButton(5) -- 5 = X2(向前) Sleep(50) ReleaseMouseButton(5) end end要用另一个字符串替换“aabbcc”,您应该再次转到“Scripting”菜单项,修改文本并保存(Ctrl-S)。