![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отслеживание изменения экрана [D7, NT4, Win2k, WinXP]
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?
И где вопрос?