![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| malor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
[A]
Какие компоненты понадобятся? Просматривая темы форума можно найти совет использовать 1) TIdTCPClient/TIdTCPServer. 2) TClientSocket/TServerSocket Какой вариант правильней? Вообще, с клиентской части понадобится управлять тем, что происходит на удаленной машине. Про сокеты такой материал нашел в сети: Создание сетевого приложения – работа с сокетами Про использование TIdTCPClient/TIdTCPServer следующий: Просмотр экрана компьютера с удаленный соединением В ветке люди обсуждают создание программы, позволяющей просмотр удаленного рабочего стола, без активного участия просматривающего. [B] На серверной стороне должно производится формирование скриншотов с определенной периодичностью, для отсылки. Тут я сам выбираю интервал в долях секунды и вставляю его в код ServerSocket/TIdTCPServer? [C] Вопрос передачи трафика большого объема пока отложим на самый конец. Возможно TightVNC будет необходимо изучать. Пока основную бы функциональность реализовать. Какие еще важные шаги пропустил? Если есть наработки, то прошу поделиться. Это сообщение отредактировал(а) malor - 8.6.2011, 17:32 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
[ A ]
на твой вкус. Я бы выбрал 1-й вариант - для меня он удобнее. Есть еще варианты 3, 4, ..., N. Годится практически любой. Вполне нормальный и вариант TClientSocket/TIdTCPServer. Выбирай что тебе удобней и понятней. [ B ] Готового такого функционала нет. Ты сам должен организовать промежутки между отправками. Можно банально воткнуть sleep, либо вручную считать GetTickCount, чтобы получить более точные промежутки. Sleep снизит нагрузку на систему, но не будет учитывать время на создание шотов, сжатие и отправку по сети, что будет давать разные интервалы на разных по мощности машинах. Считать тики вручную - получишь более ровные интервалы, но выше нагрузку на систему. [ C ] Сделай основной блок, потом оптимизируй. Например, необязательно слать полные скрины. Достаточно только ту часть, которая изменилась. Что касается remote-desktop, то RDP устроен по другому принципу. |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
[ A ]
Каждый кулик свое болото хвалит. Я за TClient|TServerSocket - "мне с ними сухо и комфортно" [ B ] Если вопрос сокращения трафика откладываем в сторону (правильная мысль - посмотреть исходники VNC), то крайне желательно сделать передачу "скриншотов" через "обратную связь". Поясню: каждому "скриншоту" при передаче присваивается идентификатор, после чего он отправляется клиенту. Клиент, обработав "скриншот", отправляет идентификатор обратно. Сервер получает идентификатор и вычисляет "а сколько же скриншотов сейчас висит между клиентом и сервером", т.е. сколько их уже сформировано и отправляется/ждет отправки. Если количество больше некоего критического (определять или опытным путем, или динамически), то формирование очередного скриншота нужно отложить, иначе - можно отправлять. Если этого (или подобного, например - все вычисления "буферизации" проводить непосредственно на сервере) не сделать, то вполне возможна ситуация, которая была у меня в первых попытках реализации (передавал полный скриншот экрана) - на клиенте отображается всё великолепно, но - в замедленном темпе. И чем дальше - тем больше отставание. Попутно это приводило к увеличению потребления памяти на сервере и вылету через OutOfMemory. Приемлимый вариант (правда, будут заметны рывки) - пока не ушел полностью один скриншот, второй не начинать формировать. |
|||
|
||||
| malor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
[ D ]
На клиентской машине отображается картинка удаленного рабочего стола в окошке произвольного размера, такого какого пользователь установит. Допустим я кликаю в точку (100, 100) клиентской области в которую подгружено изображение стола. Передаем серверной части, что произошёл удар мышью в определенной точке. По какому алгоритму координаты точки на экране удаленной машины вычислять лучше? Под рукой нет второго компа, чтоб под отладкой посмотреть механизм TightVNC. А запуск всего на одной машине приводит к эффекту "каскадных окон". |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
Может лучше взять готовый проект с исходниками, например ChunckVNC? Но там, наверняка на сях.
|
|||
|
||||
| kami |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
Если Вы воспользуетесь для воспроизведения удара мышкой mouse_event или SendInput тогда так: обе они воспринимают "нормализованные" координаты мыши - от 0(лево или верх экрана) до 65535(право или низ экрана), вне зависимости от действительного разрешения. Посему - функция "преобразования" будет выглядеть так:
где Image1 - TImage, на котором рисуется изображение удаленного компьютера. Исходный Point - координаты клика на Image1. Добавлено через 6 минут и 4 секунды Кстати, передавать нужно не только клики мышью (в том числе - дополнительных клавиш мыши), но и прокрутку колеса, и движение мыши. Наглядный пример - перемещение курсора по контекстному меню, где идет 1 клик правой кнопкой для вызова меню, а потом - только перемещение курсора (включая вложенные меню) до нахождения нужного пункта. Это сообщение отредактировал(а) kami - 16.6.2011, 23:58 |
||||
|
|||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
Не забывайте про кодировки. Потому как в некоторых программах невозможно удалённо печатать текст на русском языке
|
|||
|
||||
| yogin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 23.12.2007 Репутация: нет Всего: нет |
Я писал свой удалённый администратор столов.
Вот что могу сказать: 1) использовал исключительно WinSockApi(для скорости). Формировал свои пакеты, чтобы была боле-мене оптимальная передача 2) использовал библиотеку ijl.dll(Intel JPEG Library) для быстрой скорости обработки графики(скриншот+его расчленение). Вообщем внешне механика получилась как у радмина, но конечно скорость поменьше чутка, но на скорости 256 кб/с можно было печатать и т.п. Ещё стоит упомянуть, что я писал трёхзвенную архитектуру (клиент-клиент) - (сервер) - (админ-клиент), где админ может управлять каким-либо клиентом в сети, а пакеты проходят через сервер. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
Сейчас очень актуально использовать серверы типа IP-To-ID, типа как TeamViewer или ChunkVNC
|
|||
|
||||
| Vitaly79 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 16.7.2011 Репутация: нет Всего: нет |
Удаленный доступ к вебкамере компьютера
Здраствуйте Мне нужна помощь А точнее программа для удаленного доступа к вебкамере(аудио-видео) Шпионская скрытая программа которая не палится антивирусами....если можно помогите! А также PHP скрипт для отправки анонимной почты на несколько адресов с вложением Связь со мной: [email protected] |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
||||
|
||||
| Anakin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 25.9.2006 Репутация: нет Всего: нет |
Вот если кому понадобится исходники программы типа РАдмин.
Внутри есть папка с необходимыми компонентами. Исходник не мой давным давно где то скачал его. Присоединённый файл ( Кол-во скачиваний: 417 )
Remote.zip 723,97 Kb |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
||||
|
||||
| Anakin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 25.9.2006 Репутация: нет Всего: нет |
))) Чесно не помню где достал его, это правдо было очень давно
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |