Top.Mail.Ru
Ответы
Аватар пользователя
9лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Delphi 7. Работа с BitMap и сокетами.

Хочу написать программу для демонстрации текущего экрана на удаленке. Собираюсь использовать примерно такой кусок кода для записи экрана
bmp := TBitmap.Create;
bmp.Width := Screen.Width;
bmp.Height := Screen.Height;
BitBlt(bmp.Canvas.Handle, 0,0, Screen.Width, Screen.Height, GetDC(0), 0,0,SRCCOPY);

а потом передать это через сокет. Вопрос - можете написать какой-нибудь нормальный источник, где можно почитать о использовании сокетов и передачи через них файлов и не текстовых переменных? Как я понял, мне нужно использовать или SendBuf(var Buf; Count: Integer) или SendStream(AStream: TStream), но (чтоб этот гребанный интернет!) примеров с подробным описанием не нашел, только голимая копипаста.

По дате
По рейтингу
Аватар пользователя
Новичок
9лет

Лет 8 назад, тоже интересовался этим вопросом. Даже свой протокол придумывал, необходимость отпала не стал заморачиваться. Очень мало информации по передачи не текстовой информации через сокет.

Аватар пользователя
Мудрец
9лет

Писал нечто подобное, но это все дома - а я на работе)

Аватар пользователя
Оракул
9лет

ну вопервых сколько изображений в секунду сможешь передавать с экрана размером 1920*1200*3 = 7 мб
во вторых кусочек показывать или масштабировать в окно на удалённом компев третьих - если это будет через интернет - каким образом обойти файрволы и передавать данные в активном режиме? да и про прокси не забываем... в общем полюбому нужен сторонний сервер

ну и в четвёртых - я вот чё-то так и не нашёл как сжимать в jpg в памяти и потом в памяти же эту картинку разжать и преобразовать в битмап пригодный для вывода битблитом на экран. Кусков кода в интернете на делфи полно, есть всё чё угодно, но не то что нужно...

ну и в пятых - работа с сокетами вроде штука простая, но тоже надо поразбираться в последовательности действий и придумать какой-то протокол обмена данными.