我启动一个进程 (iexplore.exe),我获取进程 ID 并使用 p.mainWindowHandle 获取窗口。
现在我想在视频文件中记录那个特定的窗口。我知道如何捕捉图像文件中的单个帧。
自己将所有这些位图合并到一个 avi 文件中是个好主意还是有更好/更快的解决方案?我正在使用 C#
我见过一些屏幕录像机 SDK,但它们收取的费用高得离谱。
最佳答案
目前我正在使用 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);
关于c# - 带窗口句柄的 .net 视频记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7248342/