как реализовать функцию, подобную alt + tab, с помощью java?

Изображение показывает, что делает getDisplayMedia()

Я хочу показать пользователю все текущие открытые приложения/окна (например, Alt + Tab), используя java. В javaScript мы можем сделать это с помощью интерфейса Media Devices getDisplayMedia(). Я хочу реализовать аналогичную функцию, используя java. Есть ли способ сделать это с помощью JNA или чего-то еще.


person Nirman    schedule 22.07.2019    source источник
comment
Ознакомьтесь со следующим сообщением: stackoverflow.com/questions/4433994/java -window-image/ По-видимому, окно нельзя свернуть, чтобы код примера работал правильно, но вы можете обойти это. Несмотря на это, он по-прежнему будет делать скриншоты всех сфокусированных и несфокусированных окон.   -  person mperic    schedule 25.07.2019


Ответы (1)


Метод, которым я делюсь, позволяет открыть меню alt + tab с помощью Java Robot и закрыть его после задержки (он также переключает окно). Надеюсь это поможет!

public static void alt_tab() {
    Robot robot;

    try {
        robot = new Robot();
        robot.keyPress(KeyEvent.VK_ALT);
        robot.keyPress(KeyEvent.VK_TAB);
        robot.keyRelease(KeyEvent.VK_TAB);
        robot.delay(5000);
        robot.keyRelease(KeyEvent.VK_ALT);
    } catch (AWTException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

Ваше здоровье!

person JDevr    schedule 29.07.2019
comment
Я пробовал это, но это ненадежно, так как если пользователь не щелкнет одно из окон, он может получить неправильный вывод. я хочу удерживать экран до тех пор, пока пользователь не нажмет на одно из указанных окон. - person Nirman; 30.07.2019
comment
Вам нужно будет заменить задержку на MouseListener в вашем коде для этой функции. - person JDevr; 30.07.2019
comment
Используйте ссылку ниже, чтобы решить проблему stackoverflow.com/questions/14549526/alttab -использование-java-робота - person Akash; 31.07.2019
comment
Спасибо Jdevr и Akash за вашу помощь... Я попробую оба метода. - person Nirman; 02.08.2019