我启动了一个进程(iexplore.exe),我获取了processID并使用p.mainWindowHandle来获取窗口。
现在我想在视频文件中记录该特定窗口。我知道如何在图像文件中捕获单个帧。
将所有这些位图自己合并到avi文件中是不是一个好主意,还是有更好/更快的解决方案?我正在使用C#
我在那里看过一些屏幕录像机SDK,但它们收取了大量金钱。
答案 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);