Форум: "Основная";
Текущий архив: 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.033 c