0

PATH環境変数に何かを追加する次の単純なコードを Windows 8 で実行しています。驚いたことに、それは失敗しerror 5: access deniedます。すべての代わりにSetValueExポイントする場合は正常に動作します。との権限を確認しました- それらは同じで、ユーザーにはフルアクセス権があります。アクセスが拒否されるのはなぜですか?HKCUHKCU\EnvironmentHKCUHKCU\Environment

  hKey = _winreg.OpenKey( _winreg.HKEY_CURRENT_USER, 'Environment' )
  for i in itertools.count():
    try:
      sName, sData, nType = _winreg.EnumValue( hKey, i )
      if 'PATH' == sName:
        _winreg.SetValueEx( hKey, 'PATH', 0, nType, os.environ[ 'PATH' ] )
        break
    except WindowsError:
      raise "No 'PATH' in registry"
4

1 に答える 1

2

OpenKey通話を次のように変更してみてください

_winreg.OpenKey(_winreg.HKEY_CURRENT_USER, 'Environment', 0, _winreg.KEY_READ | _winreg.KEY_WRITE)

docsによると、最後のパラメーターのデフォルトは読み取り専用アクセスです。

于 2013-07-10T17:38:50.600 に答える