| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Java remote desktop? |
| Автор: unkis 16.11.2006, 19:16 |
| Ребята возможно ли реализовать при помощи java remote desktop, к примеру как MS Remote Desktop? Если да то в какую сторону надо копать? с начало я думал делать скриншоты экрана и отсылать их, но это уж слишком медленно. Поэтому и спрашиваю есть ли возможность такое реализовать. Заранее благодарен. |
| Автор: powerOn 16.11.2006, 21:51 |
| Идея эта не нова, и вроде, здесь уже обсуждалась, смотри в сторону класса java.awt.Robot. Что еще кроме скринщота можно отправить, я пока не догадываюсь... |
| Автор: unkis 16.11.2006, 23:04 |
| Слишком всё это медленно, я проверял получается что, в 1 секунду максимум 10-11 скриншотов можно сделать, размер экрана при этом 1028x800. это только чтобы их сделать, а ещё их передать надо, во общем как-то всё это медленно. я думаю что всё это как-то по другому должно решаться. |
| Автор: LSD 17.11.2006, 01:11 |
| На чистой Java, это больше никак не решается. Если очень надо, то придется использовать C++. |
| Автор: Goliath 17.11.2006, 08:50 |
| to LSD а можно более конкретней (в теории) |
| Автор: LSD 17.11.2006, 09:25 |
| Берешь C++, пишешь на нем грабер экрана, затем с помощью http://vingrad.ru/JAVA-JAVA-001971 подключаешь к своей программе. |
| Автор: unkis 17.11.2006, 11:45 |
| а что значит грабер экрана? почему нельзя написать этот же грабе на Java? что в данном случаи есть в c++ такое чего нет в Java? Заранее благодарен |
| Автор: LSD 17.11.2006, 11:54 |
Возможность вызывать функции WinAPI. |
| Автор: unkis 17.11.2006, 12:10 |
| А что значит грабер экрана и в чём отличие от обычного скриншота? |
| Автор: LSD 17.11.2006, 12:52 |
Грабер экрана это программа которая создает скриншот экрана |
| Автор: unkis 17.11.2006, 13:02 |
| тогда я не понимаю какой смысл использовать здесь c++, если Java тоже может делать скриншоты? |
| Автор: unkis 17.11.2006, 18:16 |
| понятно. тогда получается зависимость от платформы. интересно а на c# это будет также как на c++ или тоже самое что и на Java? |
| Автор: LSD 17.11.2006, 18:33 |
| C# достаточно плотно интегрирован с Windows, поэтому думаю что быстрее. |
| Автор: 3x3 17.11.2006, 21:19 | ||
Концептуально видится два подхода: 1. Виндовс перерисовывает экран прямоугольными участками (окнами). Соответственно, если перехватить системный вызов, выводящий новое содержимое в эту область экрана, то достаточно отправить клиенту только этот апдейт. Вряд ли это решается джавой. 2. Все вызовы рисования сводятся к вызову нескольких примитивных системных функций.. в смысле функций для отрисовки примитивов - кружков, прямоугольничков, букв, картинок.. Можно перехватить их и отправлять на удаленного клиента просто коды этих вызовов и их параметры. Это более гибко. Но чтоб своё писать - опять же надо перехватывать вызовы. Вариант 1 можно реализовать и без перехвата вызовов, на скриншотах - сравнивая каждый новый скриншот с предыдущим и определяя изменившиеся регионы. Но это даст только экономию трафика, зато придется сравнивать каждый раз много байтов, что ещё больше понизит частоту "кадров". |