Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Завтра :

День славянской письменности и культуры


Ребята , знатоки Дельфи помогите.


Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
Валерий
Гость







СообщениеЧт, 30-Окт-2003 14:12    Заголовок сообщения: Ребята , знатоки Дельфи помогите.
Цитата

Есть ли в Дельфи команда позволяющая получить "экран" соседнего компьютера в ЛВС??
В начало
Пол:Муж Gelios
Oracle-вый маньяк, Админ


Возраст: 37
Знак зодиака: Водолей
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
СообщениеЧт, 30-Окт-2003 14:33 
Цитата

А в Делфи нет даже команды чтобы получить "экран" своего компа, не говоря уже о соседнем...
_________________
нельзя давать всем всего, ибо всех много, а всего мало
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Dave
Модератор


Возраст: 36
Знак зодиака: Лев
Зарегистрирован: 08.08.2002
Сообщения: 1208
Откуда: Yaroslavl
СообщениеЧт, 30-Окт-2003 14:51 
Цитата

Можешь использовать либо DameWare Utilites либо VNC.
_________________
Не убегай от снайпера - умрешь уставшим !
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Пол:Муж Gelios
Oracle-вый маньяк, Админ


Возраст: 37
Знак зодиака: Водолей
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
СообщениеЧт, 30-Окт-2003 14:57 
Цитата

to Dave
Ты человека не развращай :)
DameWare Utilites либо VNC это не есть команды делфи

_________________
нельзя давать всем всего, ибо всех много, а всего мало
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Gelios
Oracle-вый маньяк, Админ


Возраст: 37
Знак зодиака: Водолей
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
СообщениеЧт, 30-Окт-2003 14:58 
Цитата

to Dave
Ты человека не развращай :)
DameWare Utilites либо VNC это не есть команды делфи

_________________
нельзя давать всем всего, ибо всех много, а всего мало
В начало
Посмотреть профиль Отправить личное сообщение
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеПт, 31-Окт-2003 1:35 
Цитата

Более того, этой команды нет ни в одном языке программирования. Даже в Сях :)
Фишка в том, что задача решается написанием (или скачиванием из инета - кому как) двух программ. Одна должна быть запущена на этом самом "соседнем компьютере", она будет захватывать экран и передавать по сети. А вторая на твоем будет принимать его и отображать. Как видишь, "командой Delphi" тут не обойтись

_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
zales
Гость







СообщениеПт, 31-Окт-2003 10:14 
Цитата

Прямо какой-то Application Server. (вариант ?1) А второй вариант - необязательно передавать данные об экране, а достаточно лишь передавать данные о перемещении мыши по экрану (ее динамической составляющей, как было сказано в теме Юмор :) и нажатий клавиш клавиатуры. Трафик гораздо меньше, а результат тот же. (Правда вы все это, наверное, уже знаете. :)
В начало
Пол:Муж Gelios
Oracle-вый маньяк, Админ


Возраст: 37
Знак зодиака: Водолей
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
СообщениеПт, 31-Окт-2003 10:32 
Цитата

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

_________________
нельзя давать всем всего, ибо всех много, а всего мало
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Dave
Модератор


Возраст: 36
Знак зодиака: Лев
Зарегистрирован: 08.08.2002
Сообщения: 1208
Откуда: Yaroslavl
СообщениеПт, 31-Окт-2003 10:44 
Цитата

Ну, можно же передавать не все целиком изображение, а только изменившуюся его часть (как это вроде бы делают Terminal Services)
_________________
Не убегай от снайпера - умрешь уставшим !
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
zales
Гость







СообщениеПт, 31-Окт-2003 14:22 
Цитата

Ну, естественно, второй вариант предполагает некую синхронизацию между изображениями на экранах двух операторов.
Я просто говорю про случай, когда необходимо динамически изменять изображения на экране при работе по медленной линии связи. Тогда подходит тот вариант, про который я говорил выше.
В начало
Пол:Муж Шурик
Я живу тут....


Возраст: 42
Знак зодиака: Овен
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
СообщениеПт, 31-Окт-2003 16:50 
Цитата

to Валерий
Тут уже заводили об этом разговор:
http://delphi.chertenok.ru/forum/viewtopic.php?t=1360
http://delphi.chertenok.ru/forum/viewtopic.php?t=1240
Даже обсудили малость детальней чем здесь.

to Gelios
Ты уж извини, я малость тебя подправлю насчёт своего экрана. Команды получения экрана конечно нет. Но скопировать его куда-то можно всего парой API команд.
DC := GetDC( 0 )
BitBlt( Canvas.Handle, ..., DC, ..., SrcCopy )
Копировать логичнее всего в TBitmap, размеры можно взять из Screen (или из GetSystemMetrics).

to Dave
Идея передавать только изменения экрана не нова. А как практически выделить эти изменения? Я немного думал над этим вопросом. Вижу пару вариантов, но оба весьма туманно:
1. Как-то сравнивать картинку текущего экрана и предыдущего, как-то выделять маску изменившихся частей...
2. Перехватывать системные сообщения рисования для всех (!) окон. После отрисовки записывать соответствующий прямоугольник или регион в список изменённых областей. С некоторой перериодичностью посылать содержимое изменённых мест и очищать список изменений.

_________________
Ответ готов, готов ли твой вопрос?
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Пол:Муж Dave
Модератор


Возраст: 36
Знак зодиака: Лев
Зарегистрирован: 08.08.2002
Сообщения: 1208
Откуда: Yaroslavl
СообщениеПт, 31-Окт-2003 18:31 
Цитата

to Шурик
Тут... как бы поточнее выразиться... есть два варианта:
1. Видеть все, что делается на экране удаленной машины (типа как в случае с DameWare Mini Remote Control, либо VNC, Back Orifice, Net Bus).
2. Принцип Terminal Services.

Теперь, если целью ставится непрерывное получение экрана удаленного компа, то тут надо прикинуть как сделать так, чтобы сетевой трафик был сведен к возможному минимуму, и загрузка ресурсов удаленного компа тоже была минимальной.
А если же цель - передать изображение в определенный момент времени, то тут без особых проблем. Аппликуха Клиент-Сервер. Запрос - Ответ.

_________________
Не убегай от снайпера - умрешь уставшим !
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Пол:Муж Gelios
Oracle-вый маньяк, Админ


Возраст: 37
Знак зодиака: Водолей
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
СообщениеПн, 03-Ноя-2003 8:04 
Цитата

to Шурик
Цитата:
Ты уж извини, я малость тебя подправлю насчёт своего экрана. Команды получения экрана конечно нет. Но скопировать его куда-то можно всего парой API команд.

Ну если бы человек спросил, с помощью каких функций API получить образ экрана... А то ведь он спросил, какая команда, при этом подразумевалась видимо команда Делфи.. :)

Цитата:
Более того, этой команды нет ни в одном языке программирования. Даже в Сях

Кстати, я сейчас вспомнил, что у нас в школе на Ямахах в Бэйсике была команда получения экрана любого компа в сети :)
Это была именно команда Бэйсика а не оператор....А также была команда посылки команд на любой комп....Чем я иногда и пользовался....:)

_________________
нельзя давать всем всего, ибо всех много, а всего мало
В начало
Посмотреть профиль Отправить личное сообщение
RedArc
Гость







СообщениеПт, 28-Ноя-2003 18:17 
Цитата

Шурик писал(а):
to Валерий
Идея передавать только изменения экрана не нова. А как практически выделить эти изменения? Я немного думал над этим вопросом. Вижу пару вариантов, но оба весьма туманно:
1. Как-то сравнивать картинку текущего экрана и предыдущего, как-то выделять маску изменившихся частей...


Разбиваем экран на области (строки и столбцы). Пусть у нас 100 строк и 150 столбцов. Передаём на управляющий компьютер весь экран целиком, а у себя подсчитываем контрольную сумму каждой выделенной нами области экрана и более крупных надобластей, вплоть до контрольной суммы всего экрана. Эти контрольные суммы у себя на компьютере и запоминаем.
Теперь по таймеру (или висим на событиях) всплываем, считаем контрольную сумму всего экрана, если изменений нет - засыпаем. Если изменения есть, то проверяем по нисходящей от более крупных областей к более мелким областям те места экрана, которые изменились. Именно эти области пересылаем клиенту, сохраняем изменившиеся контрольные суммы и опять засыпаем.

Метод поиска объектов по контрольным суммам очень хорошо зарекомендовал себя в антивирусных программах. При огромном количестве записей в вирусных базах (в нашем случае наименьших контроллируемых областей экрана) поиск нужных объектов (в нашем случае изменившихся минимально выделенных областей) работает мгновенно.
В начало
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100