如何把当前屏幕的画面图像写入一个form中?

解决方案 »

  1.   

    procedure ScreenShot(activeWindow: bool; destBitmap : TBitmap) ;
    var
       w,h : integer;
       DC : HDC;
       hWin : Cardinal;
       r : TRect;
    //   var
    //   b:TBitmap;
    //begin
    ////  b := TBitmap.Create;
    ////  try
    ////    ScreenShot(False, b) ;
    ////    Image1.Picture.Bitmap.Assign(b) ;
    ////  finally
    ////    b.FreeImage;
    ////    FreeAndNil(b) ;
    begin   if activeWindow then
       begin
         hWin := GetForegroundWindow;
         dc := GetWindowDC(hWin) ;
         GetWindowRect(hWin,r) ;
         w := r.Right - r.Left;
         h := r.Bottom - r.Top;
       end
       else
       begin
         hWin := GetDesktopWindow;
         dc := GetDC(hWin) ;
         w := GetDeviceCaps (DC, HORZRES) ;
         h := GetDeviceCaps (DC, VERTRES) ;
       end;   try
        destBitmap.Width := w;
        destBitmap.Height := h;
        BitBlt(destBitmap.Canvas.Handle,
               0,
               0,
               destBitmap.Width,
               destBitmap.Height,
               DC,
               0,
               0,
               SRCCOPY) ;
       finally
        ReleaseDC(hWin, DC) ;
       end;
    end;procedure UnCompressStream( var memStream: TMemoryStream );
    var
      SourceStream: TDecompressionStream;
      DestStream: TMemoryStream;
      Buffer: PChar;
      Count: Integer;ss: TDate
    Begin
      memStream.ReadBuffer(Count, SizeOf(Count));
      GetMem(Buffer, Count);
      DestStream := TMemoryStream.Create;
      SourceStream := TDecompressionStream.Create(memStream);  Try
        SourceStream.ReadBuffer(Buffer^, Count);
        DestStream.WriteBuffer(Buffer^, Count);
        DestStream.Position := 0;
        memStream.Clear ;
        memStream.CopyFrom(DestStream, 0) ;
      finally
        FreeMem(Buffer);
        DestStream.Free;
      end;
    end;
    http://delphi.about.com/od/adptips2006/qt/captureactive.htm
      

  2.   

    procedure UnCompressStream( var memStream: TMemoryStream ); 
    多贴了..