|
22 / 22 / 1
Регистрация: 04.01.2011
Сообщений: 67
|
|
Управление удаленным компьютером16.01.2011, 19:49. Показов 22955. Ответов 11
Метки нет (Все метки)
Добрый вечер. Хочу написать программу, наподобие mstsc.exe. То есть задачи состоят в том, чтобы приконнектится к удаленному компьютеру и залогиниться. Подскажите, как это можно реализовать?
0
|
|
| 16.01.2011, 19:49 | |
|
Ответы с готовыми решениями:
11
Управление удалённым компьютером помогите не игнорируйте Программа управления удаленным компьютером Удаленное управление компьютером |
|
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
||
| 16.01.2011, 21:21 | ||
Сообщение было отмечено как решение
РешениеЕсли нет - то дальше идти не стоит, ибо мороки будет много. Если знакомы - то напишите минимальное клиент/серверное приложение, которое способно обмениваться сообщениями в обе стороны. А дальше можете закинуть сетевое программирование в сторону. Недавно реализовывал подобный проект. Могу сказать, что сначала подошёл к его решению неправильно: не продумал все опции, которые были необходимы. Пришлось закинуть начинания, разработать модель и только затем приступить к реализации... Задумайтесь также о сетевой модели. Что вы хотите от приложения? Если вам необходима возможность обычной установки соединения с машинами, обладающими частными IP-адресами - то вам по сути, не нужен транслирующий сервер. Чем это плохо? Тем, что подключение к рабочей станции, находящейся за NAT, PAT, Proxy без дополнительных настроек, будет просто невозможным. Когда я начинал реализацию, этот вариант я отбросил сразу. По мне, лучше иметь выделенный сервер на аннонсированном IP-адресе, который и поможет выполнить проброс/трансляцию контента к удалённой стороне. Дальше, вам необходимо определить подход к определению изменившихся частей "снимка рабочего стола". Если подходите серьёзно, то смотрите в сторону Mirror Driver. Исходники есть в MS WDK. Если нужно что-то проще, то разбейте изображение на равные части и сравнивайте их. При несовпадении - отсылайте запросившей стороне или составляйте карту изменений. Также, подумайте о том, как можно оповещать другую сторону о том, что произошло движение мышью или нажаты определённые клавиши. Такую информацию можно получить обработав стандартные события, доступные для любой формы в С++ Builder'e. Информацию можно приложить к части изменённого изображения. Разобрать информацию и выполнить команду на удалённой стороне вам поможет функция SendInput. В общем, советую сперва хорошенько задуматься над моделью приложения и над вопросом "необходимо ли оно вам и готовы ли вы идти к реализации сами?"... Небольшую часть видеопрезентации разработанного мною программного продукта можно посмотреть на YouTube (видео прилагаю). Возможно, оно поможет понять то, о чём я говорил... ![]() P.S. Если необходимо HD-качество, перейдите сюда и выберите необходимое разрешение
3
|
||
|
22 / 22 / 1
Регистрация: 04.01.2011
Сообщений: 67
|
|
| 17.01.2011, 13:24 [ТС] | |
|
Извините, возможно я неправильно задал вопрос. Дело в том, что мне надо пользоваться тем же протоколом, который использует mstsc. Посредством гугла я нашел ссылку на msdn, однако совершенно не представляю, как им пользоваться.
Вот ссылка: http://msdn.microsoft.com/en-u... S.85).aspx
0
|
|
|
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
||
| 21.01.2011, 14:14 | ||
Вы где-нибудь видели упоминание о нём в моей речи или в видео?TW - программный продукт, обладающий более расширенным набором возможностей, которые мне не особо были нужны. К тому же, мне нужна была система не привязанная к чьему-то сервера, поэтому было принято решение создать свою. После некоторых доработок серверный модуль будет находится в свободном доступе, что позволит развернуть подобную систему в своей ЛВС не отдавая за это деньги.
0
|
||
|
1 / 1 / 0
Регистрация: 06.01.2011
Сообщений: 24
|
|||||||||||
| 04.02.2011, 19:37 | |||||||||||
|
Поздновато заметил подобную тему. Расскажу как я реализовал подобное Михаилу и TW. Моя программа позволяет создать соединение между компьютером имеющим белый айпи адрес и компьютером находямщимся за NAT(это самый худший возможный вариант). Сложного ничего нет. Я взял компонент TNMUDP в 6 билдере. Теперь предположим что у Михаила белый IP а мы находимся за NATом и имеем к примеру адрес 192.168.0.10. Нам важно знать этот адрес Михаила(например95.98.120.76). Теперь нам достаточно послать Михайлу сообщение
192.168.0.10
0
|
|||||||||||
|
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|||||||||||
| 04.02.2011, 23:58 | |||||||||||
|
Возможно, в подходе принята попытка избавится от фрагментации пакетов? Например, передавать пакет, размер которого не больше MTU, тогда значение будет 1472 байта. Узнать MTU можно запретив фрагментацию и явно указав размер пакета:
![]() Надеюсь, потихоньку эта проблема решится сама собой. На днях был продан последний блок IPv4-адресов. Но собственно говоря, пока что проблема очень актуальна и пришлась мне по духу. Поэтому вопрос пришлось исследовать, предложить некоторые подходы, выступить на конференции... ![]() Необходимо только поднимать проброс на указанный доступный порт. То есть, необходимо оставить возможность проброса по порту, что вызывает затруднения. Если вы находитесь в администрируемой ЛВС, то вам придётся терроризировать администраторов. Не факт, что они выполнят вашу просьбу. Программу я строил на TIdTCPClient/TIdTCPServer (ну и естественно, TIdUDPClient/TIdUDPServer). После компонента, существовавшего в С++ Builder 6 вам может показаться непривычным то, что данные из буфера клиента вам придётся выгребать вручную. Частично вопрос разбирался здесь: RAD 2010 и Indy 10. О том, как обновить Indy я упоминал в следующей статье: Visual Component Library: Вид изнутри, удаление и установка компонентов.
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 06.01.2011
Сообщений: 24
|
|
| 05.02.2011, 11:45 | |
|
Магическое число это 2000 байт - максимальный передаваемый размер пакета TNMUDP за один раз. В случае превышения размера выскакивает еррор не помню что точно. Понятно только одно что больше нельзя. А относительно соединения двух компов за Nat, то надо иметь сервак с постоянным IP адресом, далее эти два юзера, которые за Nat, посылают вам на сервер любое сообщение. В момент когда они посылаю сообщение ,Nat открывает случайный порт. Когда вам на сервер придут сообщения от этих людей в сообщении будет видно какой белый IP у каждого юзера и какой порт определил Nat каждому участнику. Если к примеру из инета теперь послать пакет указав эти два параметра: белый IP и порт который открыл Nat, то Nat их переадресует на внутренюю локалюную сеть тому кто посылал пакеты. То есть эти порты открыты еще какое то время. Вам как серверу достаточно будет послать в ответ юзеру информацию:"Твой айпишник:Порт" Теперь когда юзер1 позвонив юзеру2 узнает какой у того IP и порт(NAT) он может ему послать сообщение и NAT перенаправит сообщение юзеру2 внутри сети. Юзер 2 получит собщение а так же информацию какой порт(Nat) и IP у юзера1 и по этим данным перенаправит свой ответ. Ваш сервер больше будет не нужен, участникам достаточно самим посылать друг другу типа пинга что бы NAT не удалил порты. А подскажите еще, ваш проект был комерческий или так для себя? Это мне просто любопытно.
0
|
|
|
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
||||
| 15.02.2011, 20:45 | ||||
0
|
||||
|
1 / 1 / 0
Регистрация: 06.01.2011
Сообщений: 24
|
|
| 15.02.2011, 22:54 | |
|
Добрый вечер Михаил. Наверное немного не правильно Вы меня поняли. Если комп находится за NAT у него уже не белый IP адрес. К примеру я на ноутбуке сижу за шлюзом и имею адрес 192.168.0.10 мой друг сидит то же за своим шлюзом и у него на ноутбуке адрес 192.168.0.20. Это не одна сеть, а у каждого своя. Вот и как нам соединить наши ноутбуки по
UDP не делая проброс портов на шлюзе? Легко и просто на этом этапе нужен как раз ваш сервак с былым IP. То есть я описываю ситуацию когда 2 серых IP!!! Если опять чего не понятно вот поясняющая статья http://it.sander.su/udp-hole-punching.php Если есть хотя бы 1 белый IP, сервак ясное дело не нужен клиенты сами сконектятся. Если честно прогу написал, работает, решил посветить этой теме порядочное время и никуда особо не спешить. Поэтому начал работу не с зеркального драйвера, а с простых снятий скринов. Делал по принципу: снял скрин, сделал мини копию, разбил мини-копию на равных 20 кусочков, сравниваю каждый кусочек с прошлым в буфере, если кусочки одинаковые пропускаем, если разные вырезаем с нашего скрина этот кусок заданым размером складываем буфер и так проверяем все 20 раз. Если в процессе работы буфер достигнет максимума, отсылаем буфер клиенту. А на приемной стороне просто приходит этот буфер, я оттуда достаю кусочки читаю в доп инфо где он должен стоять и делаю вставку. Вообщем все работает, только есть немного заторможеность всвязи с тем что мне эти кусочки надо преобразовывать в jpeg, а он скотина это на моем нетбуке долго делает. Вообщем есть заторможеность маленькая но не приятная. А Вы Михаил свою программу построили на зеркальном драйвере или как я на скринах?
0
|
|
|
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|||
| 21.02.2011, 13:37 | |||
![]() Вы забыли указать протокол. После того, как сказали про UDP - сразу всё стало на свои места ![]()
0
|
|||
|
1 / 1 / 0
Регистрация: 06.01.2011
Сообщений: 24
|
|
| 22.02.2011, 00:53 | |
|
Приветствую
Михаил хочу прогу испытать вашу, выкладывайте скорей. Так же как и Вы, написав программу я закинул все очень далеко и начал писать заново. А все благодаря тому что в инете нашел алгоритм который мне пришелся больше по душе. Сейчас занят его реализацией. Сам алгоритм снятия скринов и упаковка в буфер только изменений экрана уже выполнено, осталось только сжатие сделать. Хочу JPEG послать куда подальше и написать самому хотя бы быстрый RLE. Вообщем жду вашу прогу Михаил, выкладывайте на пробу. Алгоритм не рассекретите?
0
|
|
| 22.02.2011, 00:53 | |
|
Помогаю со студенческими работами здесь
12
Разработка ПАК "Управление удаленным сервером посредством SMS сообщений" Управление удаленным компьютером OpenVPN и управление удаленным компьютером. Работа с удаленным компьютером Соединение с удалённым компьютером по Телнет Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|