带窗口句柄的.net视频记录

时间:2011-08-30 18:57:46

标签: c# .net video-capture

我启动了一个进程(iexplore.exe),我获取了processID并使用p.mainWindowHandle来获取窗口。

现在我想在视频文件中记录该特定窗口。我知道如何在图像文件中捕获单个帧。

将所有这些位图自己合并到avi文件中是不是一个好主意,还是有更好/更快的解决方案?我正在使用C#

我在那里看过一些屏幕录像机SDK,但它们收取了大量金钱。

1 个答案:

答案 0 :(得分:2)

暂时我正在使用Aforge的AVIWriter和一个为avi文件添加帧的计时器:

        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);