Screensoht ohne TImage?
-
Wie kann man eigentlich einen screenshot machen, und diesen speichern, ohne ihn vorher in ein TImage einzufügen?

-
Also ich habe jetzt selbst probiert das problem zu lösen, aber es funktioniert nicht. was ist der fehler?
Graphics::TBitmap *pBitmap = new Graphics::TBitmap(); TCanvas* canvas = new TCanvas(); canvas->Handle = GetWindowDC(0); TRect Dest = Rect(0, 0, 1024, 768); TRect Source; GetWindowRect(0, (LPRECT)&Source); Source = Rect(0, 0, Source.Right - Source.Left, Source.Bottom - Source.Top); pBitmap->Canvas->CopyRect(Dest, canvas, Source); pBitmap->SaveToFile("C:\\screenshot.bmp"); delete canvas;
-
"Funktioniert nicht" ist keine ausreichende Fehlermeldung oder Problembeschreibung.
Du solltest dir aber mal Gedanken machen, wie gross dein frisch erstelltes TBitmap wohl sein mag.
-
also ich habe jetzt noch folgende zeilen eingefügt:
pBitmap->Width = Screen->Width; pBitmap->Height = Screen->Height;Außerdem habe ich bei GetWindowDC und GetWindowRect die 0 duch NULL ersetzt, um einen screenshot vom kompletten vildschirm zu machen.
Aber ich bekomme am ende trotzdem nur ein weißes bild mit 1024x786 Pixel.
-
jetzt hab ichs:
Source = Rect(0, 0, Screen->Width, Screen->Height);
anstatt
Source = Rect(0, 0, Source.Right - Source.Left, Source.Bottom - Source.Top);