使用设备的c#表面截图游戏

本文关键字:表面 游戏 | 更新日期: 2023-09-27 18:07:28

我最近发现了关于表面&设备类,可以解决我的问题,截图一个全屏direct3d游戏。

我试着遵循这篇文章:在c#中捕获游戏屏幕截图的最快方法?(每秒超过20张图片)

我试过的第一个方法是:

Device device = new Device(0, DeviceType.Default, GetForegroundWindow(), CreateFlags.None, new PresentParameters());
Surface s2 = device.CreateImageSurface(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, Format.A8R8G8B8);
device.GetFrontBuffer(s2);
SurfaceLoader.Save("c:''Screenshot.bmp", ImageFileFormat.Bmp, s2);

我试过的第二个方法是:

Device device = new Device(0, DeviceType.Default, GetForegroundWindow(), CreateFlags.None, new PresentParameters());
Surface s1 = device.GetBackBuffer(0, BackBufferType.Mono);
device.GetFrontBuffer(s1);

在这两种方法上,设备都会报告一个找不到的dll(无法加载dll' netcfd3dm2_0.dll':指定的模块找不到。(Exception from HRESULT: 0x8007007E))

我被另一篇文章弄糊涂了。有这方面经验的人能解决吗?

使用设备的c#表面截图游戏

似乎您缺少紧凑框架附带的文件。尝试安装/重新安装紧凑框架