3 Stimmen

.net-Videoaufzeichnung mit Fensterhandle

Ich starte einen Prozess (iexplore.exe), erhalte die processID und verwende p.mainWindowHandle, um das Fenster zu erhalten.

Jetzt möchte ich dieses spezielle Fenster in einer Videodatei aufzeichnen. Ich weiß, wie man ein Einzelbild in einer Bilddatei aufnimmt.

Ist es eine gute Idee, alle diese Bitmaps in eine Avi-Datei selbst zusammenführen oder gibt es bessere/schnellere Lösungen? Ich arbeite mit C#

Ich habe einige Bildschirmschreiber-SDKs gesehen, aber die kosten lächerlich viel Geld.

2voto

Jochen Punkte 1734

Zur Zeit verwende ich den AVIWriter von Aforge mit einem Timer, der einen Frame zu einer Avi-Datei hinzufügt:

        writer = new AVIWriter("MSVC");
        writer.Open("test.avi", 400, 400);

        Bitmap b = new Bitmap(width, height);

        Graphics g = Graphics.FromImage(b);
        IntPtr hdc = g.GetHdc();
        bool result = PrintWindow((IntPtr)observedProcess.MainWindowHandle, hdc, 0);
        g.ReleaseHdc();
        g.Flush();

        Bitmap resized = ResizeImage(b, 400, 400);

        writer.AddFrame(resized);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X