我的C#应用程序安装在装有英特尔主板和显卡芯片组的嵌入式机箱上。ATI显卡已安装到PCI express上。通常,显卡驱动视频,但如果ATI卡出现故障,则视频从显卡芯片组输出。
出于诊断目的,我必须检测ATI显卡的故障。
关于如何做到这一点的任何想法/示例代码。
提前感谢Raju
发布于 2011-05-13 21:20:57
希望这篇文章能让你入门。
添加一个对System.Management的引用,然后你可以这样做:
ManagementObjectSearcher searcher
= new ManagementObjectSearcher("SELECT * FROM Win32_DisplayConfiguration");
string graphicsCard = string.Empty;
foreach (ManagementObject mo in searcher.Get())
{
foreach (PropertyData property in mo.Properties)
{
if (property.Name == "Description")
{
graphicsCard = property.Value.ToString();
}
}
}在我的例子中,graphicsCard等于
NVIDIA GeForce 8400 GS (微软公司-WDM1.1版)
发布于 2014-04-24 06:30:11
我不喜欢所选择的答案如何只返回第一个视频控制器。而且,没有必要遍历所有的属性。只要你需要的就行了。如果CurrentBitsPerPixel不为null,则说明您正在查看其中一个活动控制器。我正在使用@bairog建议的Win32_VideoController,而不是不推荐使用的Win32_DisplayConfiguration。
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("SELECT * FROM Win32_VideoController");
foreach (ManagementObject mo in searcher.Get())
{
PropertyData currentBitsPerPixel = mo.Properties["CurrentBitsPerPixel"];
PropertyData description = mo.Properties["Description"];
if (currentBitsPerPixel != null && description != null)
{
if (currentBitsPerPixel.Value != null)
System.Console.WriteLine(description.Value);
}
}我的机器有3个视频控制器。第一个是非活动的(ShoreTel)。第二个是活动的,但不是显卡(Desktop Authority)。第三个是我的NVidia。此代码将打印出DA控制器和NVidia控制器。
发布于 2013-01-30 20:12:53
Promoted answer仅适用于单显卡系统。当我有ATI和Nvidia卡时- WMI查询返回ATI,即使显示器插入Nvidia卡,dxdiag也显示Nvidia,游戏在该卡上运行(使用情况)。
我能确定正确显卡的唯一方法是使用SlimDX创建DX设备并检查它使用的是哪种显卡。然而,.dll的重量超过了3Mb。
var graphicsCardName = new Direct3D().Adapters[0].Details.Description;https://stackoverflow.com/questions/5992099
复制相似问题