在 Java 中使用直接输入发送密钥?
Posted
技术标签:
【中文标题】在 Java 中使用直接输入发送密钥?【英文标题】:Send keys using directinput in Java? 【发布时间】:2015-04-20 19:01:40 【问题描述】:我正在尝试在屏幕上显示特定图片后向 DirectX 11 游戏发送一些简单的按键。
问题是没有通过机器人类发送正确的密钥,根本没有发送 VK_UP。
我的想法是改为通过直接输入发送,只是希望它有效,但我不知道如何在 Java 中执行此操作?
用 C# 重写不是一个选项,因为我使用 sikuli for Java 进行图像识别。
【问题讨论】:
你试过hardcode.de/jxinput吗?它似乎实现了 Microsoft DirectInput 据我了解,JXInput 仅用于在您的 Java 应用程序中实现对游戏设备的支持?还是我错了? 【参考方案1】:试试https://github.com/umer0586/winKeyboard
Keyboard keyboard = new Keyboard();
keyboard.winKeyPress(ScanCode.DIK_UP);
//Thread.sleep(1000);
keyboard.winKeyRelease(ScanCode.DIK_UP);
【讨论】:
【参考方案2】:您在寻找什么样的组合键? 这里是关于 Sikuli 中键的链接:Link
例如:Ctrl + x
type('x', KeyModifier.CTRL)
向上箭头:
App.focus("Notepad")
type(Key.UP)
我在示例中确实使用了 App.focus() 来确保 Sikuli 在单击任何内容之前专注于记事本。
【讨论】:
Enter 工作正常,但 VK_UP(向上箭头) 什么也不做。在记事本中可以正常工作,但在游戏中完全不行,只需输入即可。 也许你正在寻找:keyUp(),或者 type(Key.UP) 我使用的是 Java sikuli 库,而不是 sikuli 脚本。抱歉,如果我不清楚这一点。无法使用您用 Java 发送给我的链接。我试过 kb.keyDown(Key.UP);无济于事。其中 kb = new desktopkeyboard();以上是关于在 Java 中使用直接输入发送密钥?的主要内容,如果未能解决你的问题,请参考以下文章
Selenium:如何使用Javascript将密钥发送到JQuery输入
在发送密钥和控制台之后获取输入值,记录值Selenium Webdriver