Python Winreg windows错误:[Error 5]访问被拒绝

2024-09-24 22:19:52 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我得到了标题中的错误。如果我是天真的,请原谅,但我是一个本地的OSX用户,不经常为Windows编写。在下面的代码中,我在打开条件语句中的键时授予了winreg.KEY_ALL_ACCESS。在

请参阅下面的代码。请给我建议,如果你认为代码可以更简洁。代码只需确定哪个子项具有特定的项/值,然后将项/值写入该子项。在

import _winreg as winreg
import socket

with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r'SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces') as key:
    keys = [winreg.EnumKey(key, i) for i in range(winreg.QueryInfoKey(key)[0])]
    for subkey in keys:
        with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r'SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\{0}'.format(subkey)) as finalkey:
            values = [winreg.EnumValue(finalkey, i) for i in range(winreg.QueryInfoKey(finalkey)[1])]
            for value in values:
                if value[0] == "DhcpIPAddress" and value[1] == socket.gethostbyname(socket.gethostname()):
                    with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r'SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\{0}'.format(subkey), 0, winreg.KEY_ALL_ACCESS) as writetokey:
                        winreg.SetValueEx(writetokey, 'TcpAckFrequency', 0, winreg.REG_DWORD, 1)

Tags: 代码inforlocalaswithsocketmachine