Harom
10-03-2013, 01:59:21
Saludos,
hace poco cree una pequeña aplicacion de chat en una red local utilizando los componentes indy udp, y se me ocurrio la ide de poder enviar una captura de pantalla hacia otra la otra maquina utilizando los componentes mencionados tengo el codigo para capturar una imagen y guardarla pero quisiera que me dieran alguna idea de como modificarlo para copiar la imagen en la otra pc.
este es el codigo para capturar el escritorio y guardar la imagen en mi Disco
uses ................ , jpeg;
procedure capturar_area_pantalla_a_bitmap_temporal(ABitmap: TBitmap);
var
vDesktopDC: HDC; //contendrá el device context handle del escritorio actual
begin
vDesktopDC := GetWindowDC(GetDesktopWindow);
try
ABitmap.PixelFormat := pf24bit;
ABitmap.Height := Screen.Height;
ABitmap.Width := Screen.Width;
BitBlt(ABitmap.Canvas.Handle, 0, 0, ABitmap.Width, ABitmap.Height, vDesktopDC, 0, 0, SRCCOPY); //es posible configurar el área a capturar
finally
ReleaseDC(GetDesktopWindow, vDesktopDC);
end;
end;
procedure capturar_pantalla_a_disco_formato_JPG(const fichero:string);
var
vJpg: TJpegImage;
vBmp: TBitmap;
begin
vBmp := TBitmap.Create;
try
capturar_area_pantalla_a_bitmap_temporal(vBmp);
vJpg := TJpegImage.Create;
try
vJpg.Assign(vBmp);
vJpg.CompressionQuality := 85; //calidad JPG 85%
vJpg.SaveToFile(fichero); //guardar en formato JPG
finally
vJpg.Free;
end;
finally
vBmp.Free;
end;
end;
hace poco cree una pequeña aplicacion de chat en una red local utilizando los componentes indy udp, y se me ocurrio la ide de poder enviar una captura de pantalla hacia otra la otra maquina utilizando los componentes mencionados tengo el codigo para capturar una imagen y guardarla pero quisiera que me dieran alguna idea de como modificarlo para copiar la imagen en la otra pc.
este es el codigo para capturar el escritorio y guardar la imagen en mi Disco
uses ................ , jpeg;
procedure capturar_area_pantalla_a_bitmap_temporal(ABitmap: TBitmap);
var
vDesktopDC: HDC; //contendrá el device context handle del escritorio actual
begin
vDesktopDC := GetWindowDC(GetDesktopWindow);
try
ABitmap.PixelFormat := pf24bit;
ABitmap.Height := Screen.Height;
ABitmap.Width := Screen.Width;
BitBlt(ABitmap.Canvas.Handle, 0, 0, ABitmap.Width, ABitmap.Height, vDesktopDC, 0, 0, SRCCOPY); //es posible configurar el área a capturar
finally
ReleaseDC(GetDesktopWindow, vDesktopDC);
end;
end;
procedure capturar_pantalla_a_disco_formato_JPG(const fichero:string);
var
vJpg: TJpegImage;
vBmp: TBitmap;
begin
vBmp := TBitmap.Create;
try
capturar_area_pantalla_a_bitmap_temporal(vBmp);
vJpg := TJpegImage.Create;
try
vJpg.Assign(vBmp);
vJpg.CompressionQuality := 85; //calidad JPG 85%
vJpg.SaveToFile(fichero); //guardar en formato JPG
finally
vJpg.Free;
end;
finally
vBmp.Free;
end;
end;