screen dump

0

witam po dosc dlugiej przerwie.
Mam problem tego typu. Potrzebuje napisac program robiacy zrzuty ekranu w Windows. Jezeli ktos wie jak to zrobic, lub chociazby wie gdzie moge uzyskac informacje na ten temat to bede wdzieczny...

0

FAQ od Delphi. Tak samo jest w BCB. W VC zapewne analogicznie, gdyż i tak wykorzystywane są funkcje API.

0

Ja taki program napisałem !
Co sekunde robi zrzut ekreanu zapisuje to w *.jpg a potem zamienia na *.avi i jest cały film !

A co do zrzutu to wpisz :

void __fastcall TForm1::Button1Click(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;

} :-)

0

A przy okazji :

Jak zrobić żeby jak klikne w prawo to obraz Image1 przesunie się w lewo ale tak żeby nie migał !

0

programisto : po co robisz obsługe wyjątków skoro i tak w bloku catch nic sie nie dzieje ??? rozumiem ze jesli ta operacja sie nie powiedzie :
Bmp->SaveToFile("c:\ekran.bmp");
to chcesz ominąc już tą operacje :
ReleaseDC(0, PulpitCanvas.Handle);
w takim raze o wiele latwiej jest wykonywać tą drugą operacji w zależności od tego co zwróci 1 operacja ( if ) , a nie bawić sie w obsługe wyjątków . chyba ze jest lepszy powód na stosowanie bloków catch i try ??? [browar]

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