개발환경 : Windows 11 Pro, Embarcadero RAD Studio 11 Alexandria
#include <Graphics.hpp>
#include <jpeg.hpp>
//---------------------------------------------------------------------------
void __fastcall TForm1::TakeScreenshot(String stFileName)
{
HDC screenDC = GetDC(NULL);
TBitmap* screenshot = new TBitmap;
TJPEGImage *jpgImage = new TJPEGImage();
try
{
screenshot->Width = GetSystemMetrics(SM_CXSCREEN);
screenshot->Height = GetSystemMetrics(SM_CYSCREEN);
BitBlt(screenshot->Canvas->Handle, 0, 0, screenshot->Width, screenshot->Height, screenDC, 0, 0, SRCCOPY);
screenshot->SaveToFile(stFileName+".bmp");
jpgImage->Assign(screenshot) ;
jpgImage->CompressionQuality = 100 ;
jpgImage->SaveToFile(stFileName+".jpg") ;
}
__finally
{
ReleaseDC(NULL, screenDC);
delete screenshot;
delete jpgImage;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
this->TakeScreenshot("myScreen");
}
//---------------------------------------------------------------------------
|