wielokrotne zrzuty ekranu (c++ builder 6)

0

Chcę zaprogramować przycisk który po każdym wciśnięciu będzie mi robił zrzut ekranu do pliku w formacie jpg (najlepiej do katalogu w którym aktualnie jest program exe) dobrze by było gdyby sprawdzał czy istnieje plik 0001.jpg i dodawał do niego 1 tym samym zwiększając jego nazwę np. 0001,0002...itp

na chwilę obecną skleiłem takiego szatana (c++ builder 6) (skleiłem bo dopiero uczę się programować...):

void __fastcall TfrmMain::SpeedButton1Click(TObject *Sender)
{
    TCanvas &PulpitCanvas = *new TCanvas();
    Graphics::TBitmap *Bmp = new Graphics::TBitmap;

    PulpitCanvas.Handle = GetDC(0);
    Bmp->Width = Screen->Width;
    Bmp->Height = Screen->Height;
    Bmp->Canvas->CopyRect(Rect(0, 0, Bmp->Width, Bmp->Height), &PulpitCanvas,
                          Rect(0, 0, Bmp->Width, Bmp->Height));

    try
    {
       Bmp->SaveToFile("c:\\ekran.bmp");
       ReleaseDC(0, PulpitCanvas.Handle);
    }
    catch(...)
    {
    }

    delete &PulpitCanvas;
    delete Bmp;

    Graphics::TBitmap *bitmapa = new Graphics::TBitmap();
    TJPEGImage *JPG = new TJPEGImage();
    bitmapa->LoadFromFile("c:\\ekran.bmp");
    JPG->Assign(bitmapa);
    JPG->SaveToFile("c:\\ekran.jpg");

    delete JPG;
    delete bitmapa;

    DeleteFile("c:\\ekran.bmp");
}
0

no i dodałem

#include <Jpeg.hpp>
</cpp>

ma się rozumieć

0

Dla optymalizacji kodu: po co tworzyc Bmp, zapisywac na dysk, a potem jeszcze raz wczytywac do bitmapa i konvertowac na jpg? mozna dac od razu

jpg->Assign(Bmp);

ale to tak na marginesie...

0

Dlatego że inaczej nie umie [rotfl] [browar] kupię książkę ale wcześniej chce ten przycisk zaprogramować z Waszą pomocą [diabel]

1 użytkowników online, w tym zalogowanych: 0, gości: 1