gpt4 book ai didi

java - 当另一个应用程序处于 Activity 状态时使用 java Robot

转载 作者:行者123 更新时间:2023-11-30 02:24:51 29 4
gpt4 key购买 nike

我想使用一个简单的 java 机器人,当我单击 Ctrl+Q 时,它会键入文本。但即使我专注于另一个应用程序(例如游戏),也必须这样做。我的代码工作正常,但只有当我的 JFrame 处于焦点状态时它才会运行。

button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Robot robot = null;
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}

robot.mouseMove(350, 150);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);


robot.keyPress(KeyEvent.VK_T);
robot.keyRelease(KeyEvent.VK_T);

// Solution for different keyboard layouts (ALT values)
try {
alt(KeyEvent.VK_NUMPAD0, KeyEvent.VK_NUMPAD0, KeyEvent.VK_NUMPAD4, KeyEvent.VK_NUMPAD7);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

robot.keyPress(KeyEvent.VK_Q);
robot.keyRelease(KeyEvent.VK_Q);

}

最佳答案

你应该尝试jnativehook

使用示例

import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;
import java.util.logging.*;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.awt.event.InputEvent;
public class Example implements NativeKeyListener
{
public void nativeKeyPressed(NativeKeyEvent e)
{
if(NativeKeyEvent.getKeyText(e.getKeyCode()).equals("A"))
{
Robot bot = new Robot();
bot.keyPress(KeyEvent.VK_A);
}
}
public void nativeKeyReleased(NativeKeyEvent e)
{


}
public void nativeKeyTyped(NativeKeyEvent e)
{

}
public static void main(String[] args)
{
Example ex = new Example();
try
{
GlobalScreen.registerNativeHook();
Logger logger =
Logger.getLogger(GlobalScreen.class.getPackage().getName());
logger.setLevel(Level.OFF);
}
catch(NativeHookException eb)
{
System.out.println(eb.getMessage());

}
GlobalScreen.addNativeKeyListener(ex);
}

}

此代码使用 Windows 的 native 方法,但好处是,它很容易被 java 程序员阅读,而不是 c#、c++、c 等程序员。这个类库将监听任何应用程序上按下的按键(它是全局键盘监听器),如果按下某个键则执行 Robot 类方法(例如 mousePress() 等)。

附注所使用的类的文档位于您要下载的 jnativehook 文件中

关于java - 当另一个应用程序处于 Activity 状态时使用 java Robot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45908333/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com