title | author | date | CreateTime | categories |
---|---|---|---|---|
dotnet 通過 WMI 拿到顯示卡資訊 | lindexi | 2019-08-31 16:55:58 +0800 | 2019-02-21 09:42:47 +0800 | dotnet C# WMI |
本文告訴大家如何通過 WMI 拿到顯示卡資訊
如果使用的是 dotnet core 請先引用 Microsoft.Windows.Compatibility 才可以使用 WMI 代碼
通過下面的代碼可以拿到所有的顯示卡資訊
ManagementObjectSearcher managementObject =
new ManagementObjectSearcher("select * from Win32_VideoController");
因為顯示卡是可能有很多個,通過這個代碼就可以找到所有的顯示卡
建立一個字元串,收集顯示卡的指定資訊
var str = new StringBuilder();
foreach (ManagementObject m in managementObject.Get())
{
foreach (var temp in new[]
{
"AcceleratorCapabilities", //AcceleratorCapabilities --圖形和視訊控制器的三維陣列的能力
"AdapterCompatibility", //AdapterCompatibility --用于此控制器與系統比較相容性一般晶片組
"AdapterDACType", //AdapterDACType --姓名或數字 - 模拟轉換器(DAC)晶片的辨別符
"AdapterRAM", //AdapterRAM --視訊擴充卡的記憶體大小
"Availability", //Availability --可用性和裝置的狀态
"CapabilityDescriptions", //CapabilityDescriptions --自由形式字元串提供更詳細的解釋中的任何加速器能力陣列所訓示的視訊加速器功能
"Caption", //Caption --對象的簡短描述
//ColorTableEntries --尺寸系統的色表
//ConfigManagerErrorCode --Win32的配置管理器錯誤代碼
//ConfigManagerUserConfig --如果為TRUE,該裝置是使用使用者定義的配置
//CreationClassName --第一個具體類的名稱出現在建立執行個體所使用的繼承鍊
//CurrentBitsPerPixel --使用的比特數以顯示每個像素
//CurrentHorizontalResolution --水準像素的目前數量
//CurrentNumberOfColors --在目前的分辨率支援的色彩數目
//CurrentNumberOfColumns --此視訊控制器列(如果在字元模式下)編号
//CurrentNumberOfRows --此視訊控制器行(如果在字元模式下)編号
//CurrentRefreshRate --頻率在該視訊控制器重新整理螢幕的圖像
//CurrentScanMode --目前掃描模式
//CurrentVerticalResolution --目前垂直像素數量
//Description --描述
"DeviceID", //DeviceID --該視訊控制器辨別符(唯一的計算機系統)
//DeviceSpecificPens --目前許多裝置專用筆。值0xFFFF表示裝置不支援筆。
//DitherType --抖動型視訊控制器
"DriverDate", //DriverDate --目前已安裝的視訊驅動程式的最後修改日期和時間
"DriverVersion", //DriverVersion --視訊驅動程式的版本号
//ErrorCleared --如果為真,報上一個錯誤代碼屬性中的錯誤現已清除
//ErrorDescription --可能采取的糾正措施字元串提供有關記錄在一個錯誤代碼屬性錯誤的詳細資訊
//ICMIntent --應使用預設三種可能的配色方法或意圖中的一個特定值
//ICMMethod --處理ICM方法。對于非ICM的應用程式,這個屬性決定了ICM是否已啟用對于ICM的應用程式,系統将檢查此屬性來确定如何處理ICM支援
//InfFilename --視訊擴充卡的路徑.inf檔案
//InfSection --Windows的視訊資訊所在的.inf檔案
"InstallDate", //InstallDate --安裝的日期
"InstalledDisplayDrivers", //InstalledDisplayDrivers --已安裝的顯示裝置驅動程式的名稱
//LastErrorCode --報告的邏輯裝置上一個錯誤代碼
//MaxMemorySupported --以位元組為機關支援的記憶體最高限額
//MaxNumberControlled --可支援通過該控制器可直接尋址的實體的最大數量
//MaxRefreshRate --在赫茲視訊控制器的最大重新整理率
//MinRefreshRate --在赫茲視訊控制器的最小重新整理率
//Monochrome --如果是TRUE,灰階用于顯示圖像。
//Name --标簽由該對象是已知的。當子類,該屬性可以被覆寫是一個關鍵屬性。
//NumberOfColorPlanes --目前一些顔色平面。如果該值不适用于目前視訊的配置,輸入0(零)
//NumberOfVideoPages --目前的分辨率和可用記憶體支援視訊頁數
//PNPDeviceID --即插即用邏輯裝置的播放裝置識别符
//PowerManagementCapabilities --邏輯裝置的特定功率相關的能力陣列
//PowerManagementSupported --如果為TRUE,該裝置可以是電源管理(可以投入挂起模式,等等)
//ProtocolSupported --由控制器使用協定通路“控制”的裝置
//ReservedSystemPaletteEntries --系統調色闆保留的條目數
//SpecificationVersion --初始化資料規範的版本号(在其上的結構的基礎)
//Status --對象的目前狀态
//StatusInfo --對象的目前狀态詳細資訊
//SystemCreationClassName --該作用域計算機的建立類别名稱屬性的值
//SystemName --系統的名稱
//SystemPaletteEntries --目前一些系統調色闆顔色索引條目
//TimeOfLastReset --該控制器是最後一次複位日期和時間,這可能意味着該控制器被斷電或重新初始化
//VideoArchitecture --視訊體系結構的類型
//"VideoMemoryType", //VideoMemoryType --顯存類型
//VideoMode --目前視訊模式
//VideoModeDescription --目前的分辨率,顔色和視訊控制器的掃描模式設定
//VideoProcessor --無格式的字元串描述視訊處理器
})
{
str.Append(temp);
str.Append(" ");
str.Append(m[temp]?.ToString() ?? "");
str.Append("\n");
}
}
return str.ToString();
因為顯示卡的很多資訊都是不需要的,是以就注釋了,小夥伴可以拿到自己需要的資訊
AcceleratorCapabilities :
AdapterCompatibility : Intel Corporation
AdapterDACType : Internal
AdapterRAM : 1073741824
Availability : 3
CapabilityDescriptions :
Caption : Intel(R) HD Graphics 530
DeviceID : VideoController1
DriverDate : 20181119000000.000000-000
DriverVersion : 23.20.16.4973
InstallDate :
InstalledDisplayDrivers : C:\WINDOWS\System32\DriverStore\FileRepository\igdlh64.inf_amd64_2c92d70c30b8effe\igdumdim64.
dll,C:\WINDOWS\System32\DriverStore\FileRepository\igdlh64.inf_amd64_2c92d70c30b8effe\igd10iu
md64.dll,C:\WINDOWS\System32\DriverStore\FileRepository\igdlh64.inf_amd64_2c92d70c30b8effe\ig
d10iumd64.dll,C:\WINDOWS\System32\DriverStore\FileRepository\igdlh64.inf_amd64_2c92d70c30b8ef
fe\igd12umd64.dll
本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協定進行許可。