Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

скопировать экран   Найти похожие ветки 

 
Magical   (2003-10-26 18:40) [0]

У нас есть сеть из компьютеров и мне необходимо передавать изображение экрана одного компьютера на другой или другие(вообщем знаете программу Radmin, что-то наподобии реализовано, тоесть человек на другом компьютере полностью видит все действия пользователя, такое ощущение что это не удаленная машина, а твоя(ну разве что цвета не 32бита)). Пожалуйста, не надо мне советовать нестрадать фигней, а спокойно использовать её. У меня цели несколько иные, чем у неё.

В чём собственно состоит проблема:
Нужно скопировать экран. Пробую

var bitmap: TBitmap;
dc: HDC;
w, h: integer;
begin
bitmap := TBitmap.Create;
w := GetSystemMetrics(SM_CXSCREEN);
h := GetSystemMetrics(SM_CYSCREEN);
bitmap.Width := w;
bitmap.Height := h;
dc := GetDC(0);
BitBlt(bitmap.Canvas.Handle, 0, 0, w, h, dc, 0, 0, SRCCOPY);
if dc <> 0 then ReleaseDC(0, dc);
bitmap.Free;
end;

но даже если делать это через 1сек.(что явно недостаточно, необходимо хотя-бы гдето около 25 Гц(тоеть 25 кадров в секунду)) налицо явные торморза, при каждом снимке компьютер на мгноение как-бы это сказать, ну вообщем это очень заметно(мышь передвигается рывками и т.д.)
При этом, я еще картинку не сохраняю...

Помогите, знаю что как то можно(Radmin). Буду очень благодарен за любой совет.


 
Nikolay M.   (2003-10-26 21:03) [1]

1) Передается копия не всего экрана, а только измененнной части.
2) Использовать сжатие.


 
Дмитрий В. Белькевич   (2003-10-26 21:10) [2]

Чудес не бывает (с). Не сможешь ты сделать то, что хочешь, по крайней мере на том железе, что сейчас есть. Передать через сеть 25 фпс 800x600x32бита - нереально. Да и все остальное тоже малореально. 25 фпс сграбить, перетащить через шину - тяжело. RAdmin, видел, как грабит? 0.3 - 0.5 fps, и при том, что в 16 цветах. Если он стоит каких дурнях 1000-1200, дурень жутко начинает тормозить. А ты хочешь на 2 порядка больше информации передать, можешь представить, какое железо для этого нужно.


 
Magical   (2003-10-26 22:53) [3]

Ну ладно, резко поумерим аппетиты....
А как всетаки копировать, чтобы не тормозило


 
Zergling   (2003-10-27 06:33) [4]

Может bitmap := TBitmap.Create; создать при create формы, а уничтожать при Destroy формы. А то он утебя все время создается и уничтожается - тоже время надо.


 
Спрашивающий_   (2003-10-27 07:19) [5]

И еще размры Bitmap задавать один раз при создании Bitmap и при смене разрешения
это сыкономит примерно 1/4 времени выполнения кода.


 
Злая девочка   (2003-10-27 07:43) [6]

Попробуй скопировать симуляцией клавиш

procedure ScreenToClipboard;
begin
keybd_event(VK_SNAPSHOT,1,0,0);
keybd_event(VK_SNAPSHOT,1,KEYEVENTF_KEYUP,0);
end;


 
Школьник2   (2003-10-27 07:43) [7]

Узнай через какие функции работает служба терминалов в W2000Server.


 
Song   (2003-10-27 08:40) [8]

2Magical (26.10.03 22:53) [3]
Тебе ж сказали: пересылать только измённые части.


 
zapped   (2003-10-27 10:05) [9]

2Злая девочка (27.10.03 07:43) [6]
> Попробуй скопировать симуляцией клавиш
даа, предложение соответствует нику :))), а если(?) юзер работает с буфером обмена?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.041 c
3-40892
diokant
2003-10-20 11:58
2003.11.13
Как обеспечить отображение в TDBCheckBox null и false как не вы..


1-41476
AndreyA
2003-10-28 14:05
2003.11.13
Минимайз окон


3-40855
Gia Gvatua
2003-10-21 08:48
2003.11.13
Problems with Paradox tables


1-41138
Марат
2003-11-03 13:14
2003.11.13
Яркость цвета


14-42100
Bis
2003-10-23 08:13
2003.11.13
В это сабже шесть слов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский