Определите, какая графическая карта работает через WMI

Вопрос или проблема

Я пытаюсь написать скрипт на Python, чтобы выяснить, какой графический процессор (дискретный или встроенный) в данный момент работает. Мне удалось заставить его работать, запустив dxdiag и проанализировав вывод для режима каждого устройства GPU, но это занимает слишком много времени. Кто-нибудь знает, как dxdiag получает эту информацию? Есть ли способ получить эту информацию через WMI? Буду благодарен за помощь.

Спасибо

Класс WMI Win32_VideoController имеет свойство под названием Availability, которое может показать состояние видео контроллера, но не все устройства будут передавать значения в это свойство.

Попробуйте эту команду, чтобы вывести результат:

wmic path Win32_VideoController get Caption, Availability

В результате 3 означает полную мощность. Вы можете проверить https://msdn.microsoft.com/en-us/library/aa394512(v=vs.85).aspx для получения дополнительной информации.

Тем временем, вы можете рассмотреть возможность использования инструмента WMIExplorer, чтобы сэкономить время при поиске информации в WMI. Ссылка на загрузку: https://wmie.codeplex.com/

Ответ или решение

Чтобы определить, какой графический процессор (GPU) работает на данный момент с помощью WMI (Windows Management Instrumentation), вы можете использовать класс Win32_VideoController. Этот класс предоставляет информацию о видеоконтроллерах, которые установлены на машине.

Для начала можно использовать следующую команду для получения информации о всех видеоконтроллерах:

wmic path Win32_VideoController get Caption, Availability

Команда выводит список видеоконтроллеров с их названиями (Caption) и статусом доступности (Availability). Статус доступности может иметь разные значения, и для вашего интереса наиболее важным будет значение "3", которое указывает на то, что графический процессор находится в режиме полной мощности (работает на полную мощность).

Вот краткий список некоторых значений статуса:

  • 1 – Отключено
  • 2 – Неизвестно
  • 3 – В полном режиме
  • 4 – В режиме ожидания
  • 5 – Зависит от другого устройства

Если вам нужно получить эту информацию непосредственно из Python, вы можете использовать библиотеку WMI. Вот пример кода на Python:

import wmi

# Создаем объект WMI
w = wmi.WMI()

# Запрашиваем класс Win32_VideoController
for gpu in w.Win32_VideoController():
    print(f"Название: {gpu.Caption}")
    print(f"Статус доступности: {gpu.Availability}")

    if gpu.Availability == '3':
        print("Этот GPU в режиме полной мощности.")
    print("-----")

Этот скрипт выведет название каждого видеоконтроллера на компьютере и его статус доступности. Обратите внимание, что в разных версиях драйверов и аппаратного обеспечения программа может выводить разные значения, поэтому убедитесь, что вы сопоставляете вывод с документацией.

Также стоит учитывать возможность использования некоторых инструментов, таких как WMI Explorer (доступен по ссылке), который позволяет удобно исследовать данные WMI и находить необходимую информацию без написания кода.

Таким образом, используя описанные подходы, вы сможете быстро узнать, какой GPU активен на вашем компьютере, без необходимости в длительном анализе.

Оцените материал
Добавить комментарий

Капча загружается...