![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Нужно написать небольшой просмотрщик удаленного экрана. Есть прома - как максимально бысто делать снимки с удаленного экрана?
Функция bitblt делает это очень вяло, да и удаленный комп страшно глючит, а дос режим вообще отказывается фоткать. Помогите найти альтернативное решение. -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
-------------------- Ll 2 |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Извиняюсь... Не знал. Самому стало интересно... Snowy, а как реализовать -------------------- Ll 2 |
|||
|
||||
Sunvas |
|
||||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Ну так давайте соберемся и обсудим вместе!
А как же быть?
Меня это тоже заинтерисовало. -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
||||
|
|||||
Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 5 Всего: 29 |
Скорость снятия снимка тебя не должна интересовать т.к. это делается достаточно быстро. Можешь проверить, отображая снимки сразуже на экране на той-же машине. Торможение в другом, а именно в ограничении пропускной способности канала. Правильное решение отправлять не картинку, а только изменения которые произошли с изображением с момента предыдущей передачи...
|
|||
|
||||
Sunvas |
|
||||||||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Ну с передачей данных у меня все хорошо.
Ну если делать снимков 12 в секунду то да, а вот если более чем 24 то тут происходят глюки.
Даже если это делать так. Но ведь есть и еще одна проблемма - фоткать Directdraw и ДОС режим такие функции вообще отказываются. Что ж делать?
Посоветуй, пожалуйста, как это реализовать. -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
||||||||
|
|||||||||
Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 5 Всего: 29 |
Естественно отказываются т.к. вывод в данных режимах происходит насобственный оверлей. Тебе нужно подключиться к нему и снять изображение. Как это сделать читай тут: http://www.delphimaster.ru/articles/directx/index.html Добавлено @ 08:45 Сканировать две картинки и орагинизовывать массив по каким координатам какой пиксель изменился. Отправлять этот массив и отображать его на конечной машине. Ну а реализацию, думаю сам смошь нарисовать ![]() |
|||
|
||||
Loader |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 22.4.2006 Репутация: 1 Всего: 1 |
Самый быстрый из известных мне способов. Чистый WinAPI и никакого BitBlt(). Снимает и DOS окна и все остальное.
Это сообщение отредактировал(а) Loader - 23.4.2006, 15:06 |
|||
|
||||
Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 5 Всего: 29 |
Loader
1. данный способ не может быть самым быстрым т.к. используется вызов StretchBlt заведомо дольше исполняющийся в отличие от BitBlt. 2. в данном примере присутствуют утечки памяти, ввиду неразрушения захваченых обьектов ядра. |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Может быть тебя это расстроит, но BitBlt и есть функция Windows API. |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Так еще больше глючить будет... -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
А RAdmin по твоему картинки по сети шлёт ![]() |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Loader, а в каком формате сохраняет твоя процедура рисунок?? - у меня сохраненный файл весит 54 байта, какой программой его нужно открывать?
![]() Добавлено @ 00:57 А я не знаю, как он действует, да и ты я думаю тоже не знаешь до конца. Или у тебя есть исходники? К тому же ДОС режим и режим игры он тоже не фоткает.. -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Это подтверждает, что он не использует сниятие скриншотов для передачи состояния удалённого экрана. |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Я не обсуждаю Радмин, он мне не нужен. Мне всего лишь нужно сделать небольшой просмотрщий удаленного экрана. -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 5 Всего: 29 |
как реализуешь - так и будет глючить ![]() ![]() |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Ты намекашь на то, что это безвыходная ситуация - чтобы я не сделал, то все равно будет глючить?
Ну это ж надо циклически сравнивать почти каждый пиксель, а затем отправлять части изображения... А если пользователь будет находиться в режиме игры.. И так снимки делаються очень медленно, а так еще и сканировать изображение, то и удаленный комп будет страшно глючить и скорость передачи упадет... -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Sunvas, Тебе верно говорят. Но данный подход будет несколько не быстрым, если ты его реализуешь, например, через SetPixel, которая черезвычайно медленна. Если хочется быстро менять нужные пикселы на своем изображении, то ищи клас TQuickPixel, либо на этом форуме, либо на мастерах дельфи (не помню точно). Скорость там потрясная из за прямого доступа к видеопамяти, если мне не изменяет память. Реализация на ассемблере
![]() -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
Rouse_ |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 5 Всего: 29 |
Не обязательно каждый, можно сравнивать блоками, тогда получишь прирост производительности.
Ни на что не намекаю ![]() ![]() |
||||
|
|||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Немного не понял, а зачем менять пиксели? -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Ты же не только получать изображение будешь, но и выводить на устройство... |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Но ведь мне нужен самый быстрый алгоритм деланья списков экрана, а не быстро выводить картинку на устройство.. Или я не понял о чем вы говорите.. -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
т.е. тебе нужно только получить снимок удалённого экрана, а отображать ты его нигде не собираешься? |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Я же говорю, что это будет программа-просмотрщик удаленного экрана. Отображать я собираюсь на другом компе. Просто нужно максимально быстро делать снимки экрана и чтобы удаленный комп не глючил! -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
Тьма |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 22.1.2005 Где: Украина, Винница Репутация: 1 Всего: 4 |
но тебе все равно надо будет выводить эти пикселя на какой нибуть битмап
-------------------- Vir magni ingenii |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Но это уже совсем другая проблемма!!!
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |