Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отслеживание изменения экрана [D7, NT4, Win2k, WinXP]


Страницы:   1 2

Kinnermann ©   (2010-08-19 00:09:00) 

Добрый день, уважаемые.

Поставлена задача создать программу, аналогичную известному TeamViewer'у. Основной вопрос, который есть на данный момент - это каким образом отслеживать и передавать изменения изображения экрана.
На данный момент идей, не включающих написание драйвера, ровно одна - делать снимки экрана раз/два в секунду с помощью BitBlt, накладывая через SRCINVERT на предыдущий снимок - результат, если он не полностью черный (т.е. изменений не было), пакуется и отправляется на компьютер администратора.
Данный метод очевидно плох тем, что он сжирает много процессорного времени. Есть ли возможность как-то отслеживать факт изменения изображения на экране.


Юрий Зотов   (2010-08-19 17:55:00) [21]

> oldman ©   (19.08.10 14:53) [13]

> каждую минуту меняется время в трее.
Трей не обязан быть на экране, панель задач может прятаться.

> зачем нужен комп, где не меняется изображение на экране?
Например, для долгих математических расчетов.


RWolf   (2010-08-19 17:36:00) [22]


> Anatoly Podgoretsky ©   (19.08.10 12:27) [10]

TeamViewer — действительно весьма известная программа.


oldman   (2010-08-19 14:53:00) [23]


> Есть ли возможность как-то отслеживать факт изменения изображения
> на экране.


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


Виталий Панасенко(дом)   (2010-08-19 13:24:00) [24]


> Anatoly Podgoretsky ©   (19.08.10 12:27) [10]
>
>
> > К тому же, тот-же малоизвестный TeamViewer
>
> Про который мало кто слышал, а по их словам аж 100 000 000
> установок, это же на каждом седьмом.
>
> Теперь вопрос к форумчанам, а у кого есть оно установленое?
>

у меня установлено. и ни на каком варезном сайте. официально, для личного юзания.. в таком варианте тот, к кому подключаешься, видит кто подключился, если тягаешь файло туда-сюда, тоже видно. в отличии от коммерческой версии. там все заныкано...+у TeamViewerа есть вариант доступа через ВЕБ. + VPN есть. показ презентаций своего рабочего стола, либо только конкретной программы...чтобы коллеге можно было НА ПАЛЬЦАХ показать, куда влезать и что делать...


Kinnermann   (2010-08-19 12:53:00) [25]

Драйвер - это, к сожалению, не вариант, для данной задачи - необходимо, чтобы программа могла выполняться в режиме пользователя и запускаться с флешки без установки.
Впрочем, оптимизация кода потока дала результат - 3% загрузки при 5fps. Так что всем спасибо - вопрос закрыт.


Anatoly Podgoretsky   (2010-08-19 12:27:00) [26]


> К тому же, тот-же малоизвестный TeamViewer

Про который мало кто слышал, а по их словам аж 100 000 000 установок, это же на каждом седьмом.

Теперь вопрос к форумчанам, а у кого есть оно установленое?


Anatoly Podgoretsky   (2010-08-19 12:25:00) [27]


> только есть халявная лицензия

На ближайшем варез сайте.


Anatoly Podgoretsky   (2010-08-19 12:20:00) [28]

> ~AQUARIUS~  (19.08.2010 10:33:03)  [3]

Подобные программы делаются не вредрением кода (это называется вирус), а
путем написания драйвера, как правило зеркального, поскольку максимальная
эффективность.
Кроме того исходники VNC открыты можно брать и переделывать как угодно. На
основание этих исходников, как минимум есть три разные VNC программы, на
самом деле их конечно больше.


Anatoly Podgoretsky   (2010-08-19 12:17:00) [29]

> sniknik  (19.08.2010 10:31:02)  [2]

Это предположение, я внимательно просмотрел тему, одни утвердительные
предложения.


Kinnermann   (2010-08-19 12:04:00) [30]


> Anatoly Podgoretsky ©   (19.08.10 09:50) [1]
> Что такое TeamViewer?
> И где вопрос?

TeamViewer - это программа удаленного администрирования, с некоторыми интересными особенностями, не являющимися предметом данной дискуссии.

Вопрос был задан в последней фразе, но я забыл поставить знак вопроса, а Вы, видимо, не очень внимательно читали.
На всякий случай, я повторю вопрос и на этот раз поставлю знак:

"Есть ли возможность как-то отслеживать факт изменения изображения на экране?"

> ~AQUARIUS~ ©   (19.08.10 10:33) [3]
Насчет перехвата вызовов системных библиотек - это интересная идея. Правда, строить программу на основе передаче перехваченных функций - тут слишком много нюансов.
К тому же, тот-же малоизвестный TeamViewer данную технологию не использует, однако работает довольно эффективно.


brother   (2010-08-19 11:01:00) [31]

http://www.teamviewer.com/ru/index.aspx


Виталий Панасенко(дом)   (2010-08-19 10:39:00) [32]

TeamViwer - аналог RAdmina.. только есть халявная лицензия


~AQUARIUS~   (2010-08-19 10:33:00) [33]

Подобные программы внедряют свой код в библиотеки занимающиеся графикой (gdi, gdi+ etc.) Когда *кто-то* пытается что-то нарисовать, они смотрят, где именно планируется прорисовка, если на видимой части экрана - отправляют ту же комманду (не снимок всего экрана!) На принимающей стороне команда воспроизводится. Конечно же, есть много нюансов, но общая идея такая.


sniknik   (2010-08-19 10:31:00) [34]

> Что такое TeamViewer?
"известная программа" судя по всему :). хотя честно я тоже такой не знаю. и искать не намерен. лень.

> И где вопрос?
похоже ищется событие типа onPaint для всего экрана.


Anatoly Podgoretsky   (2010-08-19 09:50:00) [35]

Что такое TeamViewer?

И где вопрос?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо