Entwickler-Ecke

Windows API - Screenshot machen(code)


MathiasH - Do 11.07.02 14:51
Titel: Screenshot machen(code)
Hi
wie mache ich einen Screenshot(von der exe gesteuert), und füge ihn dann in ein TImage ein

PS: es muss eine relativ schnelle Routine sein, weil ich ein Programm für screen-videos schreiben möchte

MathiasH


Pit - Do 11.07.02 16:30
Titel: Re: Screenshot machen(code)


OregonGhost - Do 11.07.02 18:31

Willst du einfach einen ganz normalen Screenshot sozusagen vom Desktop machen bzw. ganz viele hintereinander?
Einen Screenshot kannst du so machen:

Quelltext
1:
2:
3:
4:
5:
var dc: THandle;
...
dc := GetDC(0);
// Vielleicht geht auch DeinImage.Canvas.Handle, weiß ich gerade nicht
BitBlt(DeinImage.Picture.Bitmap.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, dc, 0, 0, SRCCOPY);

Dazu muss dein Image bzw. dessen Bitmap so groß sein wie die Bildschirmauflösung.


Pit - Do 11.07.02 19:39



Pit - Do 11.07.02 19:40



OregonGhost - Sa 13.07.02 11:45

Zitat:
Womit er sich dann selbst kopiert. Auch eine Methode einen Rechner zu beschäftigen.
Wenn das Image nicht sichtbar ist nicht.

Zitat:
Da wird er dann auch ganz schnell den Rechner neu starten müssen. Zumindestens unter Win9x-Systemen.

Wenn du weißt, dass man das anders machen muss, warum schreibst du dann nicht, wie? Ein paar konstruktivere Beiträge deinerseits wären mal sinnvoll, zumal du mit Sicherheit genug Ahnung hast, um nicht immer nur zu sagen "Das ist falsch" oder "Das ist nicht gut".
Na, immerhin hast du auf den Fehler aufmerksam gemacht, auch wenn du ihn mich korrigieren lässt.
Meinetwegen soll er noch ein ReleaseDC(0, dc); dahinter schreiben.


Pit - Sa 13.07.02 17:26



OregonGhost - So 14.07.02 11:40

Das mag sein - aber schließlich hat MathiasH danach gefragt, wie er den Screenshot in ein TImage bekommt - natürlich kann er auch direkt ein TBitmap verwenden.


Pit - So 14.07.02 16:31