以编程方式确定系统是否具有可切换的图形

hum*_*mba 9 .net c# wpf video d3dimage

我们在WPF应用程序中使用可切换显卡(AMD Radeon 7670M + Intel 4000)的笔记本电脑上遇到以下问题:

我们用来显示某些视频的D3DImage只显示一个黑框.仅当独立图形(AMD)对应用程序处于活动状态(模式设置为高性能)时才会发生这种情况.英特尔图形处于活动状态(模式设置为省电模式)可以正常工作.看起来我们并不孤单这个问题.搜索谷歌在AMD论坛上发布了以下帖子:

我找到了一个使用D3DImage.CopyBackBuffer的解决方法- 看起来backbuffer确实包含正确的框架 - 所以我会尝试显示它.

但是为了只在必要时应用这种解决方法,这让我想到了这个问题的主题:如何确定系统是否真的具有可切换的图形?
我想可能有一些方法可以使用WMI或查看注册表,但如果有人能指出我正确的方向或者甚至可能有一个例子如何这样做,我会很高兴.

更新:

我尝试过EnumDisplayDevices和System.Management.ManagementObjectSearcher.第一个没有返回所有设备而后者没有.但也许还有更好的方法呢?

Bab*_*bad 0

可能搜索驱动程序名称是另一个答案。但并不完全正确。因为可以更新驱动。所以我更喜欢使用 System.Management.ManagementObjectSearcher。