使用Lua模拟键盘输入

3
我通常在想模拟键盘和鼠标输入时使用java.awt.Robot,并且它非常有效。

最近我听说了另一种语言Lua,所以我尝试了一下。我写了一些小程序,效果很好,但现在我正在尝试像Java一样模拟键盘,但我无法使其工作。

最令人沮丧的是,我在谷歌上找到了使用PressAndReleaseKey('someKey')函数的示例代码,这些代码似乎不需要库,但我无法使此函数工作(它们似乎与罗技始终相关,因此可能仅可在罗技驱动程序中使用?)。所以我不确定这是否是我正在寻找的答案。

因此,简而言之,我的问题是:如何使用Lua程序模拟键盘输入?

例如,如果我在终端中输入:

lua test.lua

文件是这样的:

while(true) do
     thefunctionIsearch('a')
end

然后程序应该无限制地输出字母“a”。

如果有需要,我是在Linux上(Ubuntu)操作的。

1个回答

3

这些代码似乎不需要任何库

如果没有额外的库,就无法完成。如果没有外部库,C语言无法完成,而Lua的标准库完全是基于C的标准库实现的。

它们也似乎总是与罗技相关,因此可能只能在罗技驱动程序中使用

罗技有可编写Lua脚本的键盘,因此您几乎可以肯定地看到一种针对罗技特定的Lua扩展,该扩展在原始的Lua中不可用。

如何使用LUA程序模拟键盘输入?

找到或编写一个可以完成此功能的模块。如果您了解C语言,它非常简单。

或者,如果您可以找到一个适用于Linux的共享库,您可以使用LuaJIT的FFI直接与该库进行接口,而无需查找/编写模块。


那么,如果我想用 LUA 模拟键盘输入,我必须编写 C 代码并在我的 LUA 函数中调用它吗?我从未混合使用不同的语言,但我想现在是一个好时机,我会搜索如何做到这一点,谢谢。 将其编写为 C 或 Java 是否有所改变?(我已经有了我的 Java 方法运行) - user2329273
我刚刚读到LuaJIT比lua更快,所以我想我会迁移到LuaJIT(因此我将使用FFI和C)。再次感谢。 - user2329273
1
是的,Lua 是 C 语言编写的,它的 API 也是 C 的,因此用 C 编写 Lua 模块是最简单的方法。使用 FFI 比链接 C 库并从 C 中使用它要麻烦一些,但如果你能做到后者,你应该能够弄清楚前者。 - Mud

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接