Borland C++ Builder FAQ - Как поместить вид рабочего стола в буфер

ОГЛАВЛЕНИЕ


Как поместить вид рабочего стола в буфер

// Напишите следующий код:
#include  <Clipbrd.hpp>
void __fastcall TForm1::Button1Click(TObject  *Sender)
{
    unsigned DataHandle;
    HPALETTE APalette;
    Word  Format;
    Graphics::TBitmap *Bitmap=new Graphics::TBitmap;
    HDC  DC=GetDC(0);
    try
    {
        Bitmap->Height=Screen->Height;
        Bitmap->Width=Screen->Width;
        BitBlt(Bitmap->Canvas->Handle  , 0, 0, Screen->Width,
        Screen->Height,DC, 0, 0, SRCCOPY);
        //Изображение экрана теперь в Bitmap, запишем его в бyфеp  обмена
        Bitmap->SaveToClipboardFormat(Format,DataHandle,APalette);
        Clipboard()->SetAsHandle(Format,DataHandle);
    }
    __finally
    {
        delete  Bitmap;
        ReleaseDC(0,DC);
    }
}