ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

скриншот рабочего стола, с обновлением
  #1  
Старый 14.01.2010, 21:50
Leon2009
Новичок
Регистрация: 01.09.2009
Сообщений: 29
Провел на форуме:
20650

Репутация: 0
Lightbulb скриншот рабочего стола, с обновлением

Здравствуйте можете помочь? делаю скрин рабочего стола.
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
bmp: TBitmap;
DC: HDC;
Jpg: TJpegImage;
Begin
Try
bmp:= TBitmap.Create;
Jpg:= TJpegImage.Create;
bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;
DC:=GetDC(0);
bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
DC, 0, 0, SRCCOPY);
Jpg.Assign(Bmp);
Jpg.SaveToFile('test.jpg');
image1.Picture.Assign(Jpg);
ReleaseDC(0, DC);
finally
Bmp.Free;
jpg.Free;
form1.Image1.Picture:=nil;  не знаю куда ее поставить????
End;
end;
все работает но только есть глюк: первый снимак делает хорошо, а остальные начинают уменьшатся. если ставлю nil то вообще ничго не появляется. как делать обновление???? Спасибо!
 
Ответить с цитированием

  #2  
Старый 15.01.2010, 01:09
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме:
724939

Репутация: 108
Отправить сообщение для =Zeus= с помощью ICQ
По умолчанию

Они не уменьшаются. Ты подумай: ты делаешь скрин. а потом скрин в котором есть скрин. А потом скрин скрина скрина... и тд. Все вообщем норм, это просто оптическая иллюзия.
 
Ответить с цитированием

глюк
  #3  
Старый 15.01.2010, 04:42
Leon2009
Новичок
Регистрация: 01.09.2009
Сообщений: 29
Провел на форуме:
20650

Репутация: 0
Lightbulb глюк

и как хоть с ней справлятся? что делать
как сделать правельно. чтобы не из скрина скрин делать, а скрин рабочего стола?
а то видео ни какого не получается
а как канву почистить незнаю. вернее знаю тока незнаю как в код в писать.
Спасибо!

Последний раз редактировалось Leon2009; 15.01.2010 в 05:13..
 
Ответить с цитированием

  #4  
Старый 15.01.2010, 21:18
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме:
724939

Репутация: 108
Отправить сообщение для =Zeus= с помощью ICQ
По умолчанию

да возьми подвигай окном своим во время захвата, увидишь что все норм. на скрине оно тоже двигается.
 
Ответить с цитированием

подвигал
  #5  
Старый 15.01.2010, 22:31
Leon2009
Новичок
Регистрация: 01.09.2009
Сообщений: 29
Провел на форуме:
20650

Репутация: 0
Question подвигал

подвигал я окном! вылетает табличка, точно не перевел, но в переводчике - "что то там закончилось"
ладно потом испралю

а как передать через сокеты изображение из server -> Image1 в client -> image1
без сохранение файла.
Сервер
Код:
var
Size: integer;
P: ^Byte;
begin
MS := TMemoryStream.Create; // Создаём буфер для файла
MS.LoadFromFile(Edit1.Text); // Загружаем файл в буфер
// Посылаем информацию о файл (команда # название # размер)
ServerSocket1.Socket.Connections[0].SendText('file#'+Edit1.Text+'#'+IntToStr(MS.Size)+'#');
MS.Position := 0; // Переводим каретку в начало файла
P := MS.Memory; // Загружаем в переменную "P" файл
Size := ServerSocket1.Socket.Connections[0].SendBuf(P^, MS.Size); // Посылаем файл
// Выводим прогресс
ProgressBar1.Position := Size*100 div MS.Size;
StatusBar1.SimpleText := 'Отправлено '+IntToStr(Size)+' из '+IntToStr(MS.Size)+' байт'
Клиент
Код:
procedure TForm1.Writing(Text: string);
begin
if MS.Size < Size then // Если принято байт меньше размера файла, то...
MS.Write(Text[1], Length(Text)); // Записываем в буфер
// Выводим прогресс закачки файла
ProgressBar1.Position := MS.Size*100 div Size;
StatusBar1.SimpleText := 'Принято '+IntToStr(MS.Size)+' из '+IntToStr(Size);
if MS.Size = Size then // Если файл принят, то...
begin

Receive := false; // Переводим клиента в нормальный режим
MS.Position := 0; // Переводим каретку в начало буфера
MS.SaveToFile(Name); // Сохраняем файл
image1.Picture.LoadFromFile(name);
ClientSocket1.Socket.SendText('end'); // Посылаем команду "end", то есть файл принят
MS.Free; // Убиваем буфер
StatusBar1.SimpleText := 'Файл принят';

end;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var
Rtext: string; // Принятый текст       
begin
Rtext := Socket.ReceiveText;
if Receive then // Если клиент в режиме приёма файла, то...
Writing(RText) // Записываем данные в буфер
else // Если клиент не в режиме приёма файла, то...
if Copy(Rtext, 0, Pos('#', Rtext) -1) = 'file' then // Если это файл, то...
begin MS := TMemoryStream.Create; // Создаём буфер для файла
Delete(Rtext, 1, Pos('#', Rtext)); // Определяем имя файла
Name := Copy(Rtext, 0, Pos('#', Rtext) -1); // Определяем имя файла
Delete(Rtext, 1, Pos('#', Rtext)); // Определяем размер файла
Size := StrToInt(Copy(Rtext, 0, Pos('#', Rtext) -1)); // Определяем размер файла
Delete(Rtext, 1, Pos('#', Rtext)); // Удаляем последний разделитель
Label1.Caption := 'Размер файла: '+IntToStr(Size)+' байт'; // Выводим размер файла
Label2.Caption := 'Имя файла: '+Name; // Выводим имя файла
Receive := true; // Переводим сервер в режим приёма файла
Writing(RText); // Записываем данные в буфер
end;

end;
Спасибо!
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обзор Программ для Оформления\Украшения Windows BlackCats Soft - Windows 37 09.06.2010 01:21
Пропали ярлыки с рабочего стола!! Focster Болталка 9 17.01.2009 23:09
Модернизация рабочего стола ZikZak Windows 31 20.11.2006 21:19
Темы для рабочего стола Elemetn Soft - Windows 4 25.04.2006 13:10
Дистанционный просмотр рабочего стола Astro Защита ОС: вирусы, антивирусы, файрволы. 14 03.04.2006 17:24



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ