我最近发现了表面和表面。设备类可以解决我在截屏全屏直接3D游戏时遇到的问题。
我尝试过这篇文章:fastest method to capture game screen shots in c#?(more than20 images per second)
我尝试的第一种方法是:
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':找不到指定的模块。(HRESULT异常:0x8007007E))
我对其他文章感到困惑。有这方面经验的人可以解决问题吗?