【问题标题】:Write to keyboard buffer, for use outside of own application写入键盘缓冲区,在自己的应用程序之外使用
【发布时间】:2012-08-14 22:02:10
【问题描述】:

我正在编写一个获取 Apple Remote 信号的应用程序,并且我已经完成了对遥控器上硬件输入的读取。现在我必须在遥控器上复制这些输入,例如键盘缓冲区或任何存在的东西。我注意到 java.awt.Robot 中有一个 Java 类,但命令只是发送到 Java 应用程序本身而不是系统范围(!),如果我错了,请纠正我。

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

有什么建议吗?

我的机器人“罗伯特”(因为我来自德国)的不工作示例应该在系统范围而不是应用程序范围内传递按下的按钮。

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;
    }

【问题讨论】:

标签: java operating-system awtrobot keystroke


【解决方案1】:

实际上,Robot 类将能够在“系统范围内”控制您的鼠标和键盘,也就是说,您可以使用它来模拟另一个应用程序的键盘输入。但是,要让这个应用程序接收“击键”,它实际上必须具有焦点(“激活”)。

【讨论】:

    猜你喜欢
    • 2012-06-03
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 2015-07-07
    • 2015-12-29
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    相关资源
    最近更新 更多