在 Windows 上的 Minecraft Java 版本中按住鼠标左键

问题描述 投票:0回答:1

我正在尝试在后台运行的 Windows 上模拟 Minecraft Java 版中的用户输入。具体来说,我想模拟按住鼠标左键。

为了简化,我在

rawMouseInput:false
中设置了
options.txt

对于鼠标输入,问题是在接收到

WM_LBUTTONDOWN
后,Minecraft 的行为就好像立即跟随
WM_LBUTTONUP
一样,尽管我可以在调试器中看到情况并非如此。结果,诸如挖掘区块之类的操作开始但立即中断。

现在我做了一些调查,看来 Minecraft 使用的是 LWJGL 3 Java 库,而该库又使用 GLFW C 库来处理用户输入。

我克隆了最新的 GLFW 并构建了一个简单的

boing
示例。但是,我无法用该示例重现相同的问题:
boing
似乎正确地将
WM_LBUTTONDOWN
视为操作的开始,并且在我发送
WM_LBUTTONUP
之前不会停止操作。

Minecraft 对导致此类行为的输入做了什么特殊的操作吗?

如何在后台运行的 Minecraft 中模拟按住鼠标左键?

mouseevent minecraft lwjgl glfw sendmessage
1个回答
0
投票

看来你想得有点太多了。 Java 有一个内置的键盘和鼠标模拟器,据我所知,它工作得很好。

java.awt.Robot robot = new Robot();
robot.mousePress(MouseEvent.<your_button_here>);
---<wait however long you want>---
robot.mouseRelease(MouseEvent.<your_button_here>);

抱歉,如果这看起来偏离主题,但它确实避免了一大堆问题......

© www.soinside.com 2019 - 2024. All rights reserved.