精华内容
下载资源
问答
  • 本文告诉大家如何通过 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
    

    通过 Caption 和驱动安装时间就可以知道当前的显卡驱动

    我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

    如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    展开全文
  • 主要介绍了WMI获取硬件信息的方法,硬件信息有:联想台式机出厂编号 CPUID BIOS序列号 硬盘信息 显卡信息 MAC地址
  • 通过 WMI ,用 VB 可以管理的信息包括:计算机系统、磁盘、外围设备、事件日志、文件、文件夹、文件系统、网络组件、操作系统子系统、打印机、进程、注册表设置、安全性、服务、共享、SAM 用户和组、等,下面我们...

    WMI 是 Windows Management Instrumentation (Windows管理工具)的缩写,是内置在操作系统中核心的管理支持技术,通过它可以访问、配置、管理和监视几乎所有的 Windows 资源。通过 WMI ,用 VB 可以管理的信息包括:计算机系统、磁盘、外围设备、事件日志、文件、文件夹、文件系统、网络组件、操作系统子系统、打印机、进程、注册表设置、安全性、服务、共享、SAM 用户和组、等,下面我们列举几个:

    511遇见(www.511yj.com)


    用WMI对象列出系统所有进程:
     

    ----Instance.vbs----
    
    Dim WMI,objs
    Set WMI = GetObject("WinMgmts:")
    Set objs = WMI.InstancesOf("Win32_Process")
    For Each obj In objs
    Enum1 = Enum1 + obj.Description + Chr(13) + Chr(10)
    Next
    msgbox Enum1

    获得物理内存的容量:

    -----physicalMemory.vbs-----
    
    strComputer = "."
    
    Set wbemServices = GetObject("winmgmts:\\" & strComputer)
    Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration")
    
    For Each wbemObject In wbemObjectSet
    WScript.Echo "物理内存 (MB): " & CInt(wbemObject.TotalPhysicalMemory/1024)
    Next

    取得系统所有服务及运行状态

    ----service.vbs----
    
    Set ServiceSet = GetObject("winmgmts:").InstancesOf("Win32_Service")
    Dim s,infor
    infor=""
    for each s in ServiceSet
    infor=infor+s.Description+" ==> "+s.State+chr(13)+chr(10)
    next
    msgbox infor

    用WMI对象列出系统所有进程:
     

    ----Instance.vbs----
    
    Dim WMI,objs
    Set WMI = GetObject("WinMgmts:")
    Set objs = WMI.InstancesOf("Win32_Process")
    For Each obj In objs
    Enum1 = Enum1 + obj.Description + Chr(13) + Chr(10)
    Next
    msgbox Enum1


    获得物理内存的容量:
     

    -----physicalMemory.vbs-----
    
    strComputer = "."
    
    Set wbemServices = GetObject("winmgmts:\\" & strComputer)
    Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration")
    
    For Each wbemObject In wbemObjectSet
    WScript.Echo "物理内存 (MB): " & CInt(wbemObject.TotalPhysicalMemory/1024)
    Next

    取得系统所有服务及运行状态

    ----service.vbs----
    
    Set ServiceSet = GetObject("winmgmts:").InstancesOf("Win32_Service")
    Dim s,infor
    infor=""
    for each s in ServiceSet
    infor=infor+s.Description+" ==> "+s.State+chr(13)+chr(10)
    next
    msgbox infor

    CPU的序列号:
     

    ---CPUID.vbs---
    
    Dim cpuInfo
    cpuInfo = ""
    set moc = GetObject("Winmgmts:").InstancesOf("Win32_Processor")
    for each mo in moc
    cpuInfo = CStr(mo.ProcessorId)
    msgbox "CPU SerialNumber is : " & cpuInfo
    next


    硬盘型号:

    ---HDID.vbs---
    
    Dim HDid,moc
    set moc =GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive")
    for each mo in moc
    HDid = mo.Model
    msgbox "硬盘型号为:" & HDid
    next

    网卡MAC物理地址:

    ---MACAddress.vbs---
    
    Dim mc
    set mc=GetObject("Winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")
    for each mo in mc
    if mo.IPEnabled=true then
    msgbox "网卡MAC地址是: " & mo.MacAddress
    exit for
    end if
    next

    测试你的显卡:

    On Error Resume Next
    Dim ye
    Dim yexj00
    set yexj00=GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_VideoController")
    for each ye in yexj00
    msgbox " 型 号: " & ye.VideoProcessor & vbCrLf & " 厂 商: " & ye.AdapterCompatibility & vbCrLf & " 名 称: " & ye.Name & vbCrLf & " 状 态: " & ye.Status & vbCrLf & " 显 存: " & (ye.AdapterRAM\1024000) & "MB" & vbCrLf & "驱 动 (dll): " & ye.InstalledDisplayDrivers & vbCrLf & "驱 动 (inf): " & ye.infFilename & vbCrLf & " 版 本: " & ye.DriverVersion
    next

    易语言实现

    1、声明一个常量GetDiskList

    Function GetDiskList()
    Dim i, RetStr, wmiObjSet, obj
        'On Local Error Resume Next
        Set wmiObjSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_DiskDrive ")
        For Each obj In wmiObjSet
                i = i + 1
                RetStr = RetStr & "序号:" & Cstr(i) & vbCrLf
                RetStr = RetStr & "标题:" & obj.Caption & vbCrLf
                RetStr = RetStr & "描述:" & obj.Description & vbCrLf
                RetStr = RetStr & "分区:" & obj.Partitions & vbCrLf
                RetStr = RetStr & "容量:" & obj.Size & vbCrLf & vbCrLf
        Next
    GetDiskList = RetStr
    End Function

    2、封装

    .版本 2
     
    .子程序 取硬盘列表, 文本型, 公开
    .局部变量 Script, 对象
    .局部变量 ret, 文本型
     
    Script.创建 (“MSScriptControl.ScriptControl”, )
    Script.写属性 (“Language”, “VBScript”)
    Script.数值方法 (“AddCode”, #GetDiskList)
    ret = Script.通用方法 (“Eval”, “GetDiskList()”).取文本 ()
    返回 (ret)

    根据上面的代码,我们可以灵活的取读写底层硬件信息。

    源码:易语言利用WMI取磁盘信息源码

    展开全文
  • 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 本文告诉大...
    titleauthordateCreateTimecategories
    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

    通过 Caption 和驱动安装时间就可以知道当前的显卡驱动

    展开全文
  • 比如说,我们要获得计算机显示适配器的详细信息,包括显卡的型号,显卡驱动的版本号,以及显卡当前的状态。Win32_VideoControllerclass Win32_VideoController : CIM_PCVideoController { uint16 AcceleratorCa

    昨天接受了WMI的基础知识,因为自己也是刚刚接触,也是应用型的,没有研究的更深更透。

    今天,就写一个真是的例子吧。

    比如说,我们要获得计算机显示适配器的详细信息,包括显卡的型号,显卡驱动的版本号,以及显卡当前的状态。

    Win32_VideoController

    class Win32_VideoController : CIM_PCVideoController
    {
    uint16 AcceleratorCapabilities[];
    string AdapterCompatibility;
    string AdapterDACType;
    uint32 AdapterRAM;
    uint16 Availability;
    string CapabilityDescriptions[];
    string Caption;
    uint32 ColorTableEntries;
    uint32 ConfigManagerErrorCode;
    boolean ConfigManagerUserConfig;
    string CreationClassName;
    uint32 CurrentBitsPerPixel;
    uint32 CurrentHorizontalResolution;
    uint64 CurrentNumberOfColors;
    uint32 CurrentNumberOfColumns;
    uint32 CurrentNumberOfRows;
    uint32 CurrentRefreshRate;
    uint16 CurrentScanMode;
    uint32 CurrentVerticalResolution;
    string Description;
    string DeviceID;
    uint32 DeviceSpecificPens;
    uint32 DitherType;
    datetime DriverDate;
    string DriverVersion;
    boolean ErrorCleared;
    string ErrorDescription;
    uint32 ICMIntent;
    uint32 ICMMethod;
    string InfFilename;
    string InfSection;
    datetime InstallDate;
    string InstalledDisplayDrivers;
    uint32 LastErrorCode;
    uint32 MaxMemorySupported;
    uint32 MaxNumberControlled;
    uint32 MaxRefreshRate;
    uint32 MinRefreshRate;
    boolean Monochrome;
    string Name;
    uint16 NumberOfColorPlanes;
    uint32 NumberOfVideoPages;
    string PNPDeviceID;
    uint16 PowerManagementCapabilities[];
    boolean PowerManagementSupported;
    uint16 ProtocolSupported;
    uint32 ReservedSystemPaletteEntries;
    uint32 SpecificationVersion;
    string Status;
    uint16 StatusInfo;
    string SystemCreationClassName;
    string SystemName;
    uint32 SystemPaletteEntries;
    datetime TimeOfLastReset;
    uint16 VideoArchitecture;
    uint16 VideoMemoryType;
    uint16 VideoMode;
    string VideoModeDescription;
    string VideoProcessor;
    };

    英文看着费劲是吗:

    AcceleratorCapabilities  --图形和视频控制器的三维阵列的能力
    AdapterCompatibility  --用于此控制器与系统比较兼容性一般芯片组
    AdapterDACType  --姓名或数字 - 模拟转换器(DAC)芯片的标识符
    AdapterRAM  --视频适配器的内存大小
    Availability  --可用性和设备的状态
    CapabilityDescriptions  --自由形式字符串提供更详细的解释中的任何加速器能力阵列所指示的视频加速器功能
    Caption  --对象的简短描述
    ColorTableEntries  --尺寸系统的色表
    ConfigManagerErrorCode  --Win32的配置管理器错误代码
    ConfigManagerUserConfig  --如果为TRUE,该装置是使用用户定义的配置
    CreationClassName  --第一个具体类的名称出现在创建实例所使用的继承链
    CurrentBitsPerPixel  --使用的比特数以显示每个像素
    CurrentHorizontalResolution  --水平像素的当前数量
    CurrentNumberOfColors  --在当前的分辨率支持的色彩数目
    CurrentNumberOfColumns  --此视频控制器列(如果在字符模式下)编号
    CurrentNumberOfRows  --此视频控制器行(如果在字符模式下)编号
    CurrentRefreshRate  --频率在该视频控制器刷新监视器的图像
    CurrentScanMode  --当前扫描模式
    CurrentVerticalResolution  --当前垂直像素数量
    Description  --描述
    DeviceID  --该视频控制器标识符(唯一的计算机系统)
    DeviceSpecificPens  --目前许多设备专用笔。值0xFFFF表示设备不支持笔。
    DitherType  --抖动型视频控制器
    DriverDate  --当前已安装的视频驱动程序的最后修改日期和时间
    DriverVersion  --视频驱动程序的版本号
    ErrorCleared  --如果为真,报上一个错误代码属性中的错误现已清除
    ErrorDescription  --可能采取的纠正措施字符串提供有关记录在一个错误代码属性错误的详细信息
    ICMIntent  --应使用默认三种可能的配色方法或意图中的一个特定值
    ICMMethod  --处理ICM方法。对于非ICM的应用程序,这个属性决定了ICM是否已启用对于ICM的应用程序,系统将检查此属性来确定如何处理ICM支持
    InfFilename  --视频适配器的路径.inf文件
    InfSection  --Windows的视频信息所在的.inf文件
    InstallDate  --安装的日期
    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  --显存类型
    VideoMode  --当前视频模式
    VideoModeDescription  --当前的分辨率,颜色和视频控制器的扫描模式设置
    VideoProcessor  --无格式的字符串描述视频处理器

    获取计算机显卡详细信息,全部代码:

    #define _WIN32_DCOM
    #include <iostream>
    using namespace std;
    #include <comdef.h>
    #include <Wbemidl.h>
    #include <string>
    
    #pragma comment(lib, "wbemuuid.lib")
    
    int main(int argc, char **argv)
    {
      HRESULT hres;
    
      // Initialize COM.
      hres = CoInitializeEx(0, COINIT_APARTMENTTHREADED);
      if (FAILED(hres))
      {
        cout << "Failed to initialize COM library. "
          << "Error code = 0x"
          << hex << hres << endl;
        return 1;              // Program has failed.
      }
    
      // Initialize 
      hres = CoInitializeSecurity(
        NULL,
        -1,      // COM negotiates service                  
        NULL,    // Authentication services
        NULL,    // Reserved
        RPC_C_AUTHN_LEVEL_DEFAULT,    // authentication
        RPC_C_IMP_LEVEL_IMPERSONATE,  // Impersonation
        NULL,             // Authentication info 
        EOAC_NONE,        // Additional capabilities
        NULL              // Reserved
        );
    
    
      if (FAILED(hres))
      {
        cout << "Failed to initialize security. "
          << "Error code = 0x"
          << hex << hres << endl;
        CoUninitialize();
        return 1;          // Program has failed.
      }
    
      // Obtain the initial locator to Windows Management
      // on a particular host computer.
      IWbemLocator *pLoc = 0;
    
      hres = CoCreateInstance(
        CLSID_WbemLocator,
        0,
        CLSCTX_INPROC_SERVER,
        IID_IWbemLocator, (LPVOID *)&pLoc);
    
      if (FAILED(hres))
      {
        cout << "Failed to create IWbemLocator object. "
          << "Error code = 0x"
          << hex << hres << endl;
        CoUninitialize();
        return 1;       // Program has failed.
      }
    
      IWbemServices *pSvc = 0;
    
      // Connect to the root\cimv2 namespace with the
      // current user and obtain pointer pSvc
      // to make IWbemServices calls.
    
      hres = pLoc->ConnectServer(
    
        _bstr_t(L"ROOT\\CIMV2"), // WMI namespace
        NULL,                    // User name
        NULL,                    // User password
        0,                       // Locale
        NULL,                    // Security flags                 
        0,                       // Authority       
        0,                       // Context object
        &pSvc                    // IWbemServices proxy
        );
    
      if (FAILED(hres))
      {
        cout << "Could not connect. Error code = 0x"
          << hex << hres << endl;
        pLoc->Release();
        CoUninitialize();
        return 1;                // Program has failed.
      }
    
      cout << "Connected to ROOT\\CIMV2 WMI namespace" << endl;
    
      // Set the IWbemServices proxy so that impersonation
      // of the user (client) occurs.
      hres = CoSetProxyBlanket(
    
        pSvc,                         // the proxy to set
        RPC_C_AUTHN_WINNT,            // authentication service
        RPC_C_AUTHZ_NONE,             // authorization service
        NULL,                         // Server principal name
        RPC_C_AUTHN_LEVEL_CALL,       // authentication level
        RPC_C_IMP_LEVEL_IMPERSONATE,  // impersonation level
        NULL,                         // client identity 
        EOAC_NONE                     // proxy capabilities     
        );
    
      if (FAILED(hres))
      {
        cout << "Could not set proxy blanket. Error code = 0x"
          << hex << hres << endl;
        pSvc->Release();
        pLoc->Release();
        CoUninitialize();
        return 1;               // Program has failed.
      }
    
    
      // Use the IWbemServices pointer to make requests of WMI. 
      // Make requests here:
    
      // For example, query for all the running processes
      IEnumWbemClassObject* pEnumerator = NULL;
      hres = pSvc->ExecQuery(
        bstr_t("WQL"),
        bstr_t("SELECT * FROM Win32_VideoController"),
        WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
        NULL,
        &pEnumerator);
    
      if (FAILED(hres))
      {
        cout << "Query for processes failed. "
          << "Error code = 0x"
          << hex << hres << endl;
        pSvc->Release();
        pLoc->Release();
        CoUninitialize();
        return 1;               // Program has failed.
      }
      else
      {
        IWbemClassObject *pclsObj;
        ULONG uReturn = 0;
    
        while (pEnumerator)
        {
          hres = pEnumerator->Next(WBEM_INFINITE, 1,
            &pclsObj, &uReturn);
          if (0 == uReturn)
          {
            break;
          }
    
          VARIANT vtProp;
          VARIANT vtProp2;
    
          // Get the value of the Name property
          hres = pclsObj->Get(L"Description", 0, &vtProp, 0, 0);
          WCHAR* des;
          des = vtProp.bstrVal;
          wcout << "Description: " << vtProp.bstrVal << endl;
    
          hres = pclsObj->Get(L"Availability", 0, &vtProp2, 0, 0);
          wcout << "Availability: " << vtProp2.uintVal << endl;
    
          VariantClear(&vtProp);
          VariantClear(&vtProp2);
        }
    
      }
    
      // Cleanup
      // ========
    
      pSvc->Release();
      pLoc->Release();
      CoUninitialize();
    
      return 0;   
    }
    

    无图无真相,运行结果:
    这里写图片描述

    注意
    wcout << “Description: ” << vtProp.bstrVal << endl;

    wcout << “Availability: ” << vtProp2.uintVal << endl;

    解析的时候类型不用弄错了bstrVal或是uintVal

    展开全文
  • C# 中利用WMI服务查询显卡信息

    千次阅读 2007-12-22 15:55:00
    什么是WMIWMI就是Windows Management...在.NET中,System.Management命名空间提供对系统管理信息和管理事件集合的访问,这些信息和事件是与Windows管理规范(WMI)结构对系统,设备和应用程序设置检测点有关的.一般情况下
  • 易语言WMI取硬件信息源码,WMI取硬件信息,处理CPU信息,处理补丁信息,处理进程信息,处理显卡信息,处理系统服务信息,处理显示器信息,处理内存信息,处理磁盘驱动器信息,处理主板信息,处理BIOS信息,处理服务装载顺序组...
  • 在 PowerShell 可以很容易使用 WMI 拿到系统的信息,如果有关注我的网站,就会发现我写了很多通过 WMI 拿到系统的显卡,系统安装的软件等方法,本文告诉大家如果通过 PowerShell 拿到 WMI 类里面的属性 在 ...
  • C++ + WMI + DDK 实现获得显卡信息 代码

    千次阅读 2008-01-22 09:46:00
    //Build it in VC++ 2005 with the following command // cl /Zc:wchar_t- videocontroller.cpp // by Onega(www.fruitfruit.com) #define _WIN32_DCOM #include Wbemidl.h> #pragm
  • WMI获取硬件信息.rar

    2019-12-14 14:06:52
    可以获取计算机硬件信息,包含了主板,网卡,显卡,CPU。
  • WMI查询系统信息

    2007-12-23 11:31:27
    在.NET中,System.Management命名空间提供对系统管理信息和管理事件集合的访问,这些信息和事件是与Windows管理规范(WMI)结构对系统,设备和应用程序设置检测点有关的.一般情况下,应用程序和服务可以使用该命名空间下的...
  • C++通过WMI获取硬件配置信息

    千次阅读 2018-08-26 09:12:19
    C++通过WMI获取硬件配置信息 WMI即Windows管理规范。通过它可以访问、配置、管理和监视几乎所有的Windows资源。 WMI提供程序在WMI和托管资源之间扮演着中间方的角色。提供程序代表使用者应用程序和脚本从WMI托管...
  • VC利用WMI获取系统信息..

    热门讨论 2009-06-05 03:00:12
    VC利用WMI获取系统信息..包括BIOS,CPU,显卡,声卡,硬盘,内存的信息
  • 易语言利用WMI获取磁盘信息源码

    千次阅读 2020-07-29 17:38:34
    通过 WMI ,用 VB 可以管理的信息包括:计算机系统、磁盘、外围设备、事件日志、文件、文件夹、文件系统、网络组件、操作系统子系统、打印机、进程、注册表设置、安全性、服务、共享、SAM 用户和组、等,下面我们...
  • PowerShell 拿到显卡信息

    千次阅读 2019-07-29 10:04:07
    本文告诉大家如何在 PowerShell 通过 WMI 拿到显卡信息
  • 支持大部分常见的主板芯片与硬件组件,包含主板、CPU、硬盘、显卡、装置的电压、温度、风扇转速与运作频率、 Mainboard = 0, SuperIO = 1, CPU = 2, GpuNvidia = 3, GpuAti = 4, TBalancer = 5, ...
  • WMI获取硬件信息

    千次阅读 2014-10-09 10:06:32
    #define _WIN32_DCOM  #define _WIN32_WINNT 0X0500    #include  #include  #include  ...#include "wbemidl.h"  ...#include "wmi.h"    #pragma comment(lib,"WbemUuid.lib")    using nam
  • 通过WMI方式取显卡显存大小

    千次阅读 2011-11-16 11:52:45
    Desp:演示取显卡的显示内存(Video memory)大小(Capacity) Author:Kagula Date:2011-11-16 测试环境:WinXP、Win7 编译环境:VS2008+SP1 */ int main() { CoInitialize(NULL); CComPtr <IWbemLocator> spLoc; ...
  • 原文地址::... 相关文章 1、VC下获得显卡信息----http://blog.csdn.net/yuzhongzhu/article/details/3923158 2、用vc怎么获取硬件信息----https://zhidao.baidu.com/question/157
  • vb.net/C#双码 获取CPU温度/主板温度/显卡温度 硬盘温度 驱动获取非wmi 源码+中文注释,vb.net+c#双码
  • ErrorDescription --可能采取的纠正措施字符串提供有关记录在一个错误代码属性错误的详细信息 ICMIntent --应使用默认三种可能的配色方法或意图中的一个特定值 ICMMethod --处理ICM方法。对于非ICM的应用程序,这...
  • WMI(Windows Management Instrumentation,Windows 管理规范)概述:  WMI 最初于1998年作为一个附加组件与 Windows NT 4.0 Service Pack 4 一起发行,是内置在Windows 2000、 Windows XP和Windows Server 2003 ...
  • /// WMI获取所有硬件所有信息 /// /// <returns></returns> public static List[]> GetHardwareAllInfo() { List[]> allinfoList = new List[]>(); foreach (HardwareEnum win32Enum in Enum.GetValues(typeof...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 960
精华内容 384
关键字:

显卡信息wmi