如何查找通过WMI调用安装的视频Ram的数量?

问题描述:

有谁知道如何从WMI调用中获取PC的视频RAM?如何查找通过WMI调用安装的视频Ram的数量?

我见过对Win32_VideoController管理对象的AdapterRAM属性的调用,但它只给出系统内存,并不代表视频RAM。

原来,这是适配器RAM返回,并通过一个不幸的巧合,使用了错误的转换,并在两个不同的系统上给系统RAM ...。感谢您推动我们再次看。

对于它的价值,在C#WinForms应用程序:

int _ram = 0; 

ManagementObjectSearcher searcher = new ManagementObjectSearcher("select AdapterRAM from Win32_VideoController"); 

foreach (ManagementObject mo in searcher.Get()) 
{ 
    var ram = mo.Properties["AdapterRAM"].Value as UInt32?; 

    if (ram.HasValue) 
    { 
     _ram = ((int)ram/1048576); 
    } 
} 

从'硬件'下的The Microsoft Technet Script Center Script Repository然后'视频和显示器',然后'列出视频控制器属性'。

我猜想你可能要AdapterRAM和“VideoMemoryType”

On Error Resume Next 

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 

Set colItems = objWMIService.ExecQuery _ 
    ("Select * from Win32_VideoController") 

For Each objItem in colItems 
    For Each strCapability in objItem.AcceleratorCapabilities 
     Wscript.Echo "Accelerator Capability: " & strCapability 
    Next 
    Wscript.Echo "Adapter Compatibility: " & objItem.AdapterCompatibility 
    Wscript.Echo "Adapter DAC Type: " & objItem.AdapterDACType 
    Wscript.Echo "Adapter RAM: " & objItem.AdapterRAM 
    Wscript.Echo "Availability: " & objItem.Availability 
    Wscript.Echo "Color Table Entries: " & objItem.ColorTableEntries 
    Wscript.Echo "Current Bits Per Pixel: " & objItem.CurrentBitsPerPixel 
    Wscript.Echo "Current Horizontal Resolution: " & _ 
     objItem.CurrentHorizontalResolution 
    Wscript.Echo "Current Number of Colors: " & objItem.CurrentNumberOfColors 
    Wscript.Echo "Current Number of Columns: " & objItem.CurrentNumberOfColumns 
    Wscript.Echo "Current Number of Rows: " & objItem.CurrentNumberOfRows 
    Wscript.Echo "Current Refresh Rate: " & objItem.CurrentRefreshRate 
    Wscript.Echo "Current Scan Mode: " & objItem.CurrentScanMode 
    Wscript.Echo "Current Vertical Resolution: " & _ 
     objItem.CurrentVerticalResolution 
    Wscript.Echo "Description: " & objItem.Description 
    Wscript.Echo "Device ID: " & objItem.DeviceID 
    Wscript.Echo "Device Specific Pens: " & objItem.DeviceSpecificPens 
    Wscript.Echo "Dither Type: " & objItem.DitherType 
    Wscript.Echo "Driver Date: " & objItem.DriverDate 
    Wscript.Echo "Driver Version: " & objItem.DriverVersion 
    Wscript.Echo "ICM Intent: " & objItem.ICMIntent 
    Wscript.Echo "ICM Method: " & objItem.ICMMethod 
    Wscript.Echo "INF Filename: " & objItem.InfFilename 
    Wscript.Echo "INF Section: " & objItem.InfSection 
    Wscript.Echo "Installed Display Drivers: " & _ 
     objItem.InstalledDisplayDrivers 
    Wscript.Echo "Maximum Memory Supported: " & objItem.MaxMemorySupported 
    Wscript.Echo "Maximum Number Controlled: " & objItem.MaxNumberControlled 
    Wscript.Echo "Maximum Refresh Rate: " & objItem.MaxRefreshRate 
    Wscript.Echo "Minimum Refresh Rate: " & objItem.MinRefreshRate 
    Wscript.Echo "Monochrome: " & objItem.Monochrome 
    Wscript.Echo "Name: " & objItem.Name 
    Wscript.Echo "Number of Color Planes: " & objItem.NumberOfColorPlanes 
    Wscript.Echo "Number of Video Pages: " & objItem.NumberOfVideoPages 
    Wscript.Echo "PNP Device ID: " & objItem.PNPDeviceID 
    Wscript.Echo "Reserved System Palette Entries: " & _ 
     objItem.ReservedSystemPaletteEntries 
    Wscript.Echo "Specification Version: " & objItem.SpecificationVersion 
    Wscript.Echo "System Palette Entries: " & objItem.SystemPaletteEntries 
    Wscript.Echo "Video Architecture: " & objItem.VideoArchitecture 
    Wscript.Echo "Video Memory Type: " & objItem.VideoMemoryType 
    Wscript.Echo "Video Mode: " & objItem.VideoMode 
    Wscript.Echo "Video Mode Description: " & objItem.VideoModeDescription 
    Wscript.Echo "Video Processor: " & objItem.VideoProcessor 
Next 

我们已经走下AdapterRAM属性的路径之间制定出一些东西,但是,这只是给我们的系统内存,其中有与Video Ram无关。有没有另一种获得视频内存的方式?

+1

不少集成的芯片组使用系统内存作为显存;你是否在具有真实图形卡或集成显卡的系统上运行测试? – 2008-12-04 17:12:05

+0

我也这么认为...我们也测试这个代码也在一个集成显卡的MacBook Pro。仍然是相同的行为 – 2008-12-04 18:55:42

ManagementObjectSearcher searcher = new ManagementObjectSearcher("select AdapterRAM from 

    Win32_VideoController"); 

        foreach (ManagementObject mo in searcher.Get()) 
        {        

         double MemorySize = Convert.ToDouble(mo.Properties["AdapterRAM"].Value)/1048576; 

         return MemorySize.ToString(); 
        }