Przedstawiona procedura wykonuje zrzut ekranu do obiektu TImage, a następnie zapisuje obraz na dysku jako plik capture.bmp w katalogu, z którego uruchomiliśmy program.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
procedure TForm1.GetDesktopBitmap; Var DeskHWnd : Hwnd; dc: HDC; ScreenWidth, ScreenHeight: Integer; TheBmp : TBitmap; FName : String; begin {Pobieramy uchwyt pulpitu} DeskHWnd := GetDeskTopWindow; dc := GetDC(DeskHWnd); {Pobieramy rozdzielczość ekranu} ScreenWidth := GetDeviceCaps(dc,HORZRES); ScreenHeight := GetDeviceCaps(dc,VERTRES); {Tworzymy Bitmapę} TheBmp := TBitmap.Create; TheBmp.Width := ScreenWidth; TheBmp.Height := ScreenHeight; {Rysujemy ekran} BitBlt(TheBmp.Canvas.Handle, 0,0,ScreenWidth,ScreenHeight,dc, 0,0,SRCCOPY); {Wrzucamy bitmape do TImage} Image1.Picture.Bitmap := TheBmp; Application.ProcessMessages; {Usuwamy z pamięci bitmapę} TheBmp.Free; ReleaseDC(DeskHWnd, dc); {Zapisujemy jako plik} FName := ExtractFilePath(Application.Exename) + 'capture.bmp'; Image1.Picture.Bitmap.SaveToFile(FName); end; |
Autor: Nakiel