Java 写入键盘缓冲区,以便在自己的应用程序之外使用

Java 写入键盘缓冲区,以便在自己的应用程序之外使用,java,operating-system,awtrobot,keystroke,Java,Operating System,Awtrobot,Keystroke,我正在写一个应用程序,它可以获取苹果遥控器的信号,我已经读取完遥控器上的硬件输入。现在我必须在遥控器上复制这些输入,比如键盘缓冲区或其他存在的东西。我注意到Java.awt.Robot中有一个Java类,但是命令只是发送到Java应用程序本身,而不是整个系统(!),如果我错了,请纠正我 但我需要一个解决方案,让我的程序在整个系统范围内几乎按键盘,例如,在同时启动的程序(如MS Powerpoint)中支持使用箭头键进行页面翻转 有什么建议吗 我的机器人“Robert”(因为我来自德国)的一个不起

我正在写一个应用程序,它可以获取苹果遥控器的信号,我已经读取完遥控器上的硬件输入。现在我必须在遥控器上复制这些输入,比如键盘缓冲区或其他存在的东西。我注意到Java.awt.Robot中有一个Java类,但是命令只是发送到Java应用程序本身,而不是整个系统(!),如果我错了,请纠正我

但我需要一个解决方案,让我的程序在整个系统范围内几乎按键盘,例如,在同时启动的程序(如MS Powerpoint)中支持使用箭头键进行页面翻转

有什么建议吗

我的机器人“Robert”(因为我来自德国)的一个不起作用的例子,它将在系统范围而不是应用程序范围内传递按下的按钮

switch(line) {
        case LEFT: System.out.println("left");
                   robert.keyPress(37);
                   robert.keyRelease(37);
                   break;
        case RIGHT: System.out.println("right");
                    robert.keyPress(39);
                    robert.keyRelease(39);
                    break;
        case UP: System.out.println("up");
                    robert.keyPress(38);
                    robert.keyRelease(38);
                    break;
        case DOWN: System.out.println("down");
                    robert.keyPress(38);
                    robert.keyRelease(38);
                    break;
        case PLAYPAUSE: System.out.println("play pause");
                    robert.keyPress(516); // dollar sign
                    robert.keyRelease(516);
                    break;
        case MENU: System.out.println("menu");
                    robert.keyPress(515); // euro sign
                    robert.keyRelease(515);
                    break;
    }

实际上,Robot类将能够“系统范围”控制鼠标和键盘,也就是说,您可以使用它模拟其他应用程序的键盘输入。然而,要让此应用程序接收“击键”,它实际上必须有焦点(处于“活动状态”)。

对于这个现在有用的工具,似乎到目前为止还没有适合java实现的系统范围内击键模拟的解决方案:/