Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
1-41682
овен
2003-10-24 20:50
2003.11.13
компоненты


6-41798
$h@dow
2003-09-19 16:05
2003.11.13
Как сделать экономный режим скачки?


14-41961
Ketmar
2003-10-16 19:22
2003.11.13
DarkEyeProxy v0.3.0


4-42269
miguel1
2003-09-08 16:45
2003.11.13
Программирование голосовых функций модема при помощи TAPI


3-41094
Border
2003-10-26 22:44
2003.11.13
Уважаемые...