Удаленное управление компьютером
Модераторы: Duncon, Hawk, Romeo, Eugie
Доброго времени суток.
Передо мной стоит задача реализовать удаленное управление компьютером: написать прогу которая свяжет два компа по сети и даст главному компу полную свободу действий (отображение рабочего стола управляемого компа на экране управляющего, отклик на все действия мыши и клавиатуры и т.д.).
Т.е. надо реализовать 3 задачи:
1) связать 2 компа
2) получить картинку с управляемого на управляющий
3) отлавливать на управляющем и исполнять на управляемом компе все действия
Вопрос к знающим людям: где можно почитать про принципы реализации данной задачи? (ответы google и т.д. не являются ответом на поставленный вопрос).
Буду рад любой помощи и подсказке!
ЗЫ: просьба писать только по делу, а не оффтоп типа нафиг оно нужно или почитай "азбуку программера"...
Передо мной стоит задача реализовать удаленное управление компьютером: написать прогу которая свяжет два компа по сети и даст главному компу полную свободу действий (отображение рабочего стола управляемого компа на экране управляющего, отклик на все действия мыши и клавиатуры и т.д.).
Т.е. надо реализовать 3 задачи:
1) связать 2 компа
2) получить картинку с управляемого на управляющий
3) отлавливать на управляющем и исполнять на управляемом компе все действия
Вопрос к знающим людям: где можно почитать про принципы реализации данной задачи? (ответы google и т.д. не являются ответом на поставленный вопрос).
Буду рад любой помощи и подсказке!
ЗЫ: просьба писать только по делу, а не оффтоп типа нафиг оно нужно или почитай "азбуку программера"...
- mc-black
- Сообщения: 250
- Зарегистрирован: 08 май 2008, 16:09
- Откуда: Россия, Нижний Новгород
- Контактная информация:
Вам надо знать про устройство клиент-серверных программ, чтобы создать:
1. Программу-сервер, установленную и запущенную на машине, которую предстоит администрировать. Эта программа "прослушивает" определенный порт локального компьютера, на попытки подключений. В случае запроса программа подключает клиента - устанавливает с ним соединение, затем по Вашему протоколу обе программы начинают общение в виде формального "диалога" по типу: вопрос-ответ, команда-действие.
2. Программа клиент, которая пытается подключиться к программе-серверу на удаленном компьютере. Этой программе должны быть известны ip-адрес удаленного компьютера с запущенным сервером, номер открытого порта сервера.
Из технических описаний Вам следует прочесть про сокеты, а также некоторый набор API-функций, который нужен для получения снимков экрана, захвата сообщений мыши и клавиатуры и т.п.
Это если очень вкратце. Готовых программ полно, можно даже поискать реализации с открытыми исходниками. А с какой целью это вам нужно? Возможно смогу чем-то поспособствовать.
1. Программу-сервер, установленную и запущенную на машине, которую предстоит администрировать. Эта программа "прослушивает" определенный порт локального компьютера, на попытки подключений. В случае запроса программа подключает клиента - устанавливает с ним соединение, затем по Вашему протоколу обе программы начинают общение в виде формального "диалога" по типу: вопрос-ответ, команда-действие.
2. Программа клиент, которая пытается подключиться к программе-серверу на удаленном компьютере. Этой программе должны быть известны ip-адрес удаленного компьютера с запущенным сервером, номер открытого порта сервера.
Из технических описаний Вам следует прочесть про сокеты, а также некоторый набор API-функций, который нужен для получения снимков экрана, захвата сообщений мыши и клавиатуры и т.п.
Это если очень вкратце. Готовых программ полно, можно даже поискать реализации с открытыми исходниками. А с какой целью это вам нужно? Возможно смогу чем-то поспособствовать.
На заказ: VBA, Excel mc-black@yandex.ru
mc-black, спс за инфу. если может быть знаешь полезные ссылки по вышеуказанному буду очень благодарен.
ЗЫ: это у меня курсовой такой(( хочешь-не хочешь, а делать нужно...
ЗЫ: это у меня курсовой такой(( хочешь-не хочешь, а делать нужно...
- mc-black
- Сообщения: 250
- Зарегистрирован: 08 май 2008, 16:09
- Откуда: Россия, Нижний Новгород
- Контактная информация:
Для курсовой у тебя времени недостаточно - ищи в исходниках любые примеры реализации и может тебе улыбнется удача и ты найдешь что-то готовое для себя. Кстати, на чем реализовывать-то собираешься (язык, платформа, технология, библиотеки...)? ссылка тебе прямая пока - это поиск по sourceforge.net
На заказ: VBA, Excel mc-black@yandex.ru
ну времени у меня еще целый месяц))
реализовать думал на шарпе, т.к. нужен графический интерфейс, а его я знаю лучше графических. ну и делать видимо под винду буду, т.к. линукс даже не установлен
на счет всего остального - что будет по информации...
реализовать думал на шарпе, т.к. нужен графический интерфейс, а его я знаю лучше графических. ну и делать видимо под винду буду, т.к. линукс даже не установлен

на счет всего остального - что будет по информации...
- mc-black
- Сообщения: 250
- Зарегистрирован: 08 май 2008, 16:09
- Откуда: Россия, Нижний Новгород
- Контактная информация:
По мне, так и месяц мало, надо ведь и сам курсовик написать, не одну программу принести. Ну так и начни с того, что сделай клиент и сервер. Чтобы клиент мог подсоединиться к серверу и сделать нечто типа диалога:
Клиент: Привет, сервер!
Сервер: Привет, клиент!
Клиент: Передавай снимки экрана через 1 сек.
Сервер: Снимок 1.
Сервер: Снимок 2.
...
Клиент: Прими сообщение мыши WM_LBUTTONDOWN
Сервер: Мышь (127;54) SendMessage WM_LBUTTONDOWN
Ну короче сделай рабочую пару клиент и сервер, для отладки пусть сервер будет тоже GUI-приложением (в финале GUI скрыт или программа консольная). Сделай типа чата клиента с сервером, где только клиент может подключиться к серверу (но не наоборот). Повесь сервер на любой свободный порт локального компьютера, скажем 3128, а сервером подключайся к нему по localhost: 127.0.0.1, порт 3128. Если сделаешь рабочую пару и поймешь, что это работает, значит прокатит и в локальной сети (без файерволов, естественно). Затем сделаешь:
1. Передача данных от сервера-клиенту - передача слегка сжатых bitmap'ов со снимками экрана - слишком часто передавать картинку не выйдет.
2. Передача данных от клиента к серверу: сообщения мыши транслировать на локальную машину сервера; то же самое с сообщениями клавиатуры.
Кстати, библиотека .NET здорово развязывает тебе руки, так что возможно и API-вызовов тебе понадобится много меньше, есть богатые встроенные средства для связи по сети, для обработки и показа картинки.
Клиент: Привет, сервер!
Сервер: Привет, клиент!
Клиент: Передавай снимки экрана через 1 сек.
Сервер: Снимок 1.
Сервер: Снимок 2.
...
Клиент: Прими сообщение мыши WM_LBUTTONDOWN
Сервер: Мышь (127;54) SendMessage WM_LBUTTONDOWN
Ну короче сделай рабочую пару клиент и сервер, для отладки пусть сервер будет тоже GUI-приложением (в финале GUI скрыт или программа консольная). Сделай типа чата клиента с сервером, где только клиент может подключиться к серверу (но не наоборот). Повесь сервер на любой свободный порт локального компьютера, скажем 3128, а сервером подключайся к нему по localhost: 127.0.0.1, порт 3128. Если сделаешь рабочую пару и поймешь, что это работает, значит прокатит и в локальной сети (без файерволов, естественно). Затем сделаешь:
1. Передача данных от сервера-клиенту - передача слегка сжатых bitmap'ов со снимками экрана - слишком часто передавать картинку не выйдет.
2. Передача данных от клиента к серверу: сообщения мыши транслировать на локальную машину сервера; то же самое с сообщениями клавиатуры.
Кстати, библиотека .NET здорово развязывает тебе руки, так что возможно и API-вызовов тебе понадобится много меньше, есть богатые встроенные средства для связи по сети, для обработки и показа картинки.
На заказ: VBA, Excel mc-black@yandex.ru
спс. начну пробовать делать. большой респект за помощь и подсказки!
mc-black, я пока решил не через сокеты а через wcf реализовать коннект. вроде говорят проще и надежней.
так вот вопрос: подскажи плиз как можно передать сообщение содержащее картинку?
т.е. я делаю принтскрин через сервер. у меня есть изображение битмаповское. теперь мне нужно передать его клиенту. если просто напрямую передавать картинку то она очень много весит из-за чего возникают проблемы само собой. так вот как можно её уменьшить, ужать или еще что-нить с ней нашаманить?
так вот вопрос: подскажи плиз как можно передать сообщение содержащее картинку?
т.е. я делаю принтскрин через сервер. у меня есть изображение битмаповское. теперь мне нужно передать его клиенту. если просто напрямую передавать картинку то она очень много весит из-за чего возникают проблемы само собой. так вот как можно её уменьшить, ужать или еще что-нить с ней нашаманить?
- mc-black
- Сообщения: 250
- Зарегистрирован: 08 май 2008, 16:09
- Откуда: Россия, Нижний Новгород
- Контактная информация:
WCF, так WCF, какая разница. Лишь бы было соединение и можно бы было передавать данные.
Сохраняй в png-файл и передавай сжатый файл. Я .NET знаюб мало, но там легко разобраться, так как хорошая документация и можно найти много исходников. Для сохранения в сжатые форматы (png, jpg, gif) надо выбрать фильтр, которым жмется битмап и вперед. Не передача картинки самое трудное в программировании. Вот с клавой и мышкой можешь застрять.
Сохраняй в png-файл и передавай сжатый файл. Я .NET знаюб мало, но там легко разобраться, так как хорошая документация и можно найти много исходников. Для сохранения в сжатые форматы (png, jpg, gif) надо выбрать фильтр, которым жмется битмап и вперед. Не передача картинки самое трудное в программировании. Вот с клавой и мышкой можешь застрять.
На заказ: VBA, Excel mc-black@yandex.ru
-
- Сообщения: 1
- Зарегистрирован: 17 окт 2012, 16:51
- Откуда: Antarctica
- Контактная информация:
Изза долгое эра удачной работы в сфере отопления и водоснабжения наши специалисты накопили рослый разбирательство, поэтому предоставляем наедине лучшие и современные разработки в сфере создания систем отопления либо водоснабжения. Мы выполняем проектирование, монтаж водоснабжения и отопления, пуско-наладку. Для сайте вы можете достигать с ценами ради услуги.