Получайте скриншоты запущенных приложений отдельно и параллельно

Я пытаюсь реализовать приложение, которое будет работать как приложение для удаленного рабочего стола, однако оно должно позволять пользователю распространять все приложения с графическим интерфейсом и видеть их отдельно.

Я пытаюсь сделать это на Java, однако я готов работать и с другими языками, если функциональность поддерживается.

В настоящее время мне удалось, по крайней мере, реализовать часть удаленного рабочего стола, используя скриншот робота AWT. Я отправляю изображения клиенту через фиксированные промежутки времени.

Чтобы найти подсказки, я просмотрел проект sourceforge jrDesktop и обнаружил, что он также использует тот же метод screenCapture здесь.

Для второй части проблемы мне нужно показать все окна одновременно. например, несколько экранов, подключенных к машине, с одним приложением на каждом экране.

Я не знаю, возможно ли получить информацию о рендеринге каждого приложения одновременно.

Прямо сейчас я готов согласиться на создание виртуального экрана с очень большим разрешением и распространение приложений на этом экране на клиенте, что-то вроде VNC-сервера, поскольку он может определять разрешение экрана. Было бы здорово получить здесь несколько указателей, если есть какие-либо проекты с открытым исходным кодом, желательно на Java, но не ограничиваясь ими, которые могут помочь в этом.

Однако я хотел бы решить эту проблему без одного большого экрана.

Любая помощь приветствуется.

Мой текущий код POC находится здесь https://github.com/ConsciousObserver/Robot, он еще не оптимизирован.


person 11thdimension    schedule 05.06.2016    source источник
comment
Это может быть достигнуто с помощью JNA. Просто возьмите дескрипторы окна, получите размеры/положение/состояние (минимизированное и т. д.), нарисуйте его, преобразуйте в объект Java (например, BufferedImage) и т. д. Я не знаю, как это будет работать для окон, которые перекрываются на win/mac /*никс. Но вам придется писать код для каждой платформы, которую вы хотите поддерживать.   -  person Xeon    schedule 05.06.2016
comment
Спасибо @Xeon, я только что посмотрел параметры C++ для Windows с JNA, думаю, это может сработать. В этом вопросе, Блад подтверждает, что этот метод может захватывать скрытые окна. Я должен буду проверить это.   -  person 11thdimension    schedule 05.06.2016