Доступ к реестру Windows для скрипта Python - PullRequest
0 голосов
/ 08 декабря 2018

Я работаю над скриптом Python 3.7, который в конечном итоге станет программой CLI, такой как reg.exe.Я собираюсь включить возможность добавлять, удалять и запрашивать ключи и подразделы.На этом этапе я могу создать новый ключ и перебрать все ключи в определенном пути;как только я пытаюсь записать значение в новый ключ, который я создал, я получаю WinError 5 - Доступ запрещен.

Есть ли способ включить в сценарий способ доступа к записи в реестр?

Я все еще новичок в Python и программировании, я посмотрел документы, но не могу понять это.

Любая помощь будет принята с благодарностью.Мой код так далеко:

import winreg

reg_connection = winreg.ConnectRegistry(None, winreg.HKEY_CURRENT_USER)

reg_key = winreg.OpenKey(reg_connection, r"SOFTWARE\Microsoft\\")

winreg.CreateKey(reg_key, "New Key")

for key in range(3000):
    try:
        show_sub_keys = winreg.EnumKey(reg_key, key)
        print(show_sub_keys)
    except WindosError:
        break

new_key_value = winreg.OpenKey(reg_connection, r"SOFTWARE\Microsoft\New Key")
winreg.SetValueEx(new_key_value, "New Value",0,winreg.REG_SZ, "This Value")
winreg.CloseKey(new_key_value)

1 Ответ

0 голосов
/ 08 декабря 2018
new_key_value = winreg.OpenKey(reg_connection, r"SOFTWARE\Microsoft\New Key")

Здесь вы не указываете аргумент для необязательного параметра access, поэтому вызов передает значение по умолчанию KEY_READ.Следовательно, вы можете только читать с ключа, но не писать.

Вы должны передать аргумент для параметра access, который определяет необходимые вам разрешения:

new_key_value = winreg.OpenKey(reg_connection, r"SOFTWARE\Microsoft\New Key", 0, 
                               winreg.KEY_SET_VALUE)

Для получения дополнительной информациисм. справочник по winreg .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...