9

Java Robot でalt+tabメニューを表示しようとしています。alt_tab() メソッドを呼び出すと、alt+tabメニューが表示され、メニューが表示されたままになります。altこれは++ctrltabを使用して達成できることを知っています

これまでのところ、以下のコードを試してみました。また、コントロール キーなしでalt+だけを試しました。tabなぜメニューが表示されないのかわかりません。Altキーを押してエミュレートするだけです。

public void alt_tab() {
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_ALT);
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_TAB);
    robot.delay(100);
    robot.keyRelease(KeyEvent.VK_TAB);
    robot.keyRelease(KeyEvent.VK_CONTROL);
    robot.keyRelease(KeyEvent.VK_ALT);
}

私は Windows 8 Pro と JDK 7 を使用しています。

4

2 に答える 2

6

この問題が議論されているWindows デベロッパー センターのスレッドがあります。どうやら、Windows 8 でルールが変更されたようです。

UiAccessシェルで応答をトリガーできるキーボード入力のシミュレーションは、アプリケーションが特権を持つ支援技術アプリケーションでない限り、もはや動作することが保証されていません。

「アクセシビリティ アプリケーションは、SendInput を使用して、シェルによって処理されるアプリケーション起動ショートカット キーに対応するキーストロークを挿入できます。この機能は、他の種類のアプリケーションで動作することは保証されていません。」—送信入力機能 (Windows)

次の要件を満たす必要があります。

  • 署名される
  • %ProgramFiles%またはの下に設置する%SystemRoot%\system32
  • uiAccess='true'マニフェストで指定する
  • SYSTEMまたは現在ログオンしているユーザーの下で実行

Google グループ

于 2013-01-27T17:01:42.387 に答える
2

回避策を見つけることができました。このサイトの指示に従ってALT+TABメニューへのショートカットを作成し、

Runtime.getRuntime().exec("cmd \c start " + <path\to\shortcut\>);

特別な UIAccess 権限なしでALT+メニューを起動します。TAB回答をくださった皆さんに感謝します。

于 2013-02-04T15:27:30.763 に答える