как да внедря функция като alt+tab с помощта на java?

Изображението показва какво прави getDisplayMedia()

Искам да покажа на потребителя всички текущо отворени приложения/прозорци (като този на alt+tab), използвайки java. В javaScript можем да направим това чрез интерфейса на медийните устройства 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 -using-java-robot - person Akash; 31.07.2019
comment
Благодаря на Jdevr и Akash за вашата помощ... Ще опитам и двата метода. - person Nirman; 02.08.2019