0

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

1 に答える 1

0

実際には、Robot クラスはマウスとキーボードを「システム全体」で制御できます。つまり、別のアプリケーションのキーボード入力をエミュレートするために使用できます。ただし、このアプリケーションが「キーストローク」を受け取るには、実際にフォーカスを持っている (「アクティブ」である) 必要があります。

于 2012-08-14T22:48:58.907 に答える