Как я могу узнать количество установленного видеопамяти через WMI-вызов?

Кто-нибудь знает, как получить видеопамять ПК из вызова WMI?

Я видел вызовы свойства AdapterRAM объекта управления Win32_VideoController, но это дает только системную память и совсем не отражает видеопамяти.


wmi
person Peter Walke    schedule 04.12.2008    source источник


Ответы (3)


Оказывается, это была возвращенная оперативная память адаптера, и по неудачному совпадению было использовано неправильное преобразование, и системная оперативная память была выдана ... в двух разных системах. Спасибо, что подтолкнули нас посмотреть еще раз.

Как бы то ни было, в приложении 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);
   }
}
person Lee Roth    schedule 05.12.2008
comment
у меня amd 7870 2GB и он возвращает отрицательную доблесть -2048 почему? - person jolly; 08.11.2012
comment
Потому что круглые скобки поставлены неправильно. Должно быть: _ram = (int) (ram / 1048576); - person Simon Fischer; 01.04.2014
comment
Интересно, что происходит с этим глупым uint32, когда кто-то владеет графическим процессором с 4 ГиБ или более ОЗУ? - person springy76; 19.11.2014
comment
Затем он вернет 4 ГиБ, что делает этот интерфейс бесполезным и заставляет меня сейчас искать другой способ получить правильное значение ... - person jettatore; 18.07.2017

Из хранилища сценариев Microsoft Technet Script Center в разделе «Оборудование», затем «Видео и дисплей». 'затем' Список свойств видеоконтроллера '.

Я предполагаю, что вам, возможно, придется разработать что-то между 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
person Dan Esparza    schedule 04.12.2008

Мы уже пошли по пути свойства AdapterRAM, но это давало нам только системную память, которая не имеет ничего общего с Video Ram. Есть ли другой способ получить видеопамятину?

person Peter Walke    schedule 04.12.2008
comment
Довольно много интегрированных наборов микросхем используют системную память в качестве видеопамяти; вы проводите свой тест в системе с реальной видеокартой или встроенной графикой? - person Nathan Strong; 04.12.2008
comment
Я тоже так думал ... Мы тестируем этот код также на MacBook Pro со встроенной видеокартой. Тем не менее такое же поведение - person Peter Walke; 04.12.2008