Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Capturando pantallas (https://www.clubdelphi.com/foros/showthread.php?t=10282)

StartKill 14-05-2004 17:43:02

Capturando pantallas
 
Hola amigos.

Trabajo con Delphi 7.0 y Windows 98SE.

Baje una rutina de Trucomania(no me acuerdo bien) donde capuraba la toda la pantalla del windows.... tengo una aplicacion que graba las pantalla cada cierto tiempo en disco y la capturo en otra maquina.......

Pero me he dado con la soorpresa que cuando uno entra al DOS en pantalla completa no captura la pantalla.

Debo suponer que la rutina solo captura pantallas windows (alguna posicion segmento/desplazamiento en memoria)...

Aca el codigo :-)

Código:

procedure Pantalla(Socket:TCustomWinSocket; cFile:String);
var Escritorio: THandle;
    dc        : HDC;
    Bmp      : TBitmap;
    jpeg      : TJpegImage;
    //fhandle  : Integer;
    //Tamanno  : String;

begin
  try
    Escritorio := GetDeskTopWindow;
    dc        := GetDC( Escritorio );
    Bmp        := TBitmap.Create;
    Bmp.Width  := Screen.Width;
    Bmp.Height := Screen.Height;
    BitBlt( Bmp.Canvas.Handle , 0 , 0 , Screen.Width , Screen.Height , dc , 0 , 0 , SRCCOPY );
    Application.ProcessMessages;
    Jpeg := TJpegImage.Create;
    Jpeg.Assign( bmp );
    Jpeg.CompressionQuality := 30;
    Jpeg.Compress;
    Jpeg.SaveToFile( cFile );

    socket.sendtext('PANTALLA');

    Jpeg.Free;
    Bmp.Free;
    ReleaseDC( Escritorio , dc );
    Application.ProcessMessages;
    //FHandle := FileOpen(cFile, 0);
    //Tamanno := floattostr(getfilesize(FHandle,nil));
    //FileClose(FHandle);
    //socket.sendtext('PANTALLA ['+trim(tamanno)+']');
  except
  end;
end;

Si fueran tan amables de ayudarme a solucionar este problema estare muy agradecido.

Your friend,

StartKill
Lima-Perú

delphi.com.ar 14-05-2004 17:55:10

Así es.. para traer la información de la pantalla de una consola no gráfica, puedes hacerlo con las funciones de Buffer de consola, te recomiendo buscar informacion sobre GetConsoleScreenBufferInfo.

Saludos!

StartKill 14-05-2004 21:27:05

Hola, primero gracias por responder tan rapido... te comento que corte y pegue la funcion :confused: en el delphi y le hice el acostumbrado CTRL+F1 y para mi mala suerte no salio naa.

Por favor si fueran tan amables de darme un poco mas lineas.

Gracias

Your Friend

StratKill
Lima-Perú

delphi.com.ar 14-05-2004 21:56:10

Es que esa función no es propia de Delphi, es una WinApi, puedes ver la ayuda desde el menú de Delphi \ Help \ Windows SDK

Saludos!


La franja horaria es GMT +2. Ahora son las 22:44:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi