Использование winreg для получения информации о GPU

Я использую Winreg в Python 3.4, чтобы получить значения реестра Windows. Я уже настроил систему для получения информации о процессоре (имя процессора, максимальная частота и т. Д.) И пытаюсь адаптировать ее для получения информации о графическом процессоре. Единственная проблема заключается в том, что ключ, содержащий значения GPU, хранится там: SYSTEM\CurrentControlSet\Control\Video{D1B33FF8-E663-44A7-9C71-2CE551F6C0EE}\0000

Итак, вот моя строка кода, чтобы добраться до "директории" GPU:

self.connection = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE)
self.subkey = winreg.OpenKey(self.connection, "SYSTEM\CurrentControlSet\Control\Video\{D1B33FF8-E663-44A7-9C71-2CE551F6C0EE}\0000")

Но я получаю эту ошибку: "Аргумент 2 OpenKey() должен быть str без нулевых символов или None, not str". Итак, мой вопрос: как я могу использовать нулевые символы в пути? Большое спасибо, Жюльен.

1 ответ

Решение

Символы обратной косой черты в строке используются в качестве escape-последовательностей в Python.

Самый простой способ использовать их как обычные символы - это использовать r-строку:

self.subkey = winreg.OpenKey(self.connection, r"SYSTEM\CurrentControlSet\Control\Video\{D1B33FF8-E663-44A7-9C71-2CE551F6C0EE}\0000")

Это использование r"..." вместо просто "...", Таким образом, символ обратной косой черты не используется в качестве escape-символа.

Другие вопросы по тегам