2016-04-09 22 views
1

Ich wünsche über diesen Code, um einen Registrierungsschlüssel mit Python hinzuzufügen:Zugriff wird in Python verweigert

import _winreg 
from time import sleep 
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,'Software\\Microsoft\\Windows\\CurrentVersion\\Run',_winreg.KEY_SET_VALUE) 
_winreg.SetValueEx(key,'Windows-Update',0,_winreg.REG_BINARY,'C:\Windows\System32\SystemSetting\Block.exe') 
key.Close() 

Aber es zeigt WindowsError: [Error 5] Access is denied diese Fehler auf.

Irgendeine Lösung?

EDIT - ich habe es schon als admin

EDIT2 laufen - Ist es zu KEY_ALL_ACCESS Zusammenhang

+0

Führen Sie den Python-Interpreter als Administrator aus. –

+0

@Rogalski Bereits getan –

+0

Sollte die Pfadzeichenfolge nicht "C: \\ Windows \\ System32 \\ SystemSetting \\ Block.exe" lauten? – martineau

Antwort

1

Führen Sie das Python-Programm innerhalb Eingabeaufforderung. Es ist ein command prompt (Admin) Programm in Windows verfügbar. Oder klicken Sie einfach mit der rechten Maustaste auf Command prompt und wählen Sie Run as administrator. Ref

+0

welches Python Programm? das Skript? –

+0

yup, speichern Sie das Programm als Py-Datei und führen Sie es in der Eingabeaufforderung. – Mitty

+0

Vielen Dank es hat funktioniert –

0

Es geht nicht um runnig als admin. Ich versuchte Runnig als Admin und bekam immer noch Acces is denied Nachricht.

Sie müssen die reservierte Ganzzahl verwenden, die standardmäßig 0 ist.

_winreg.OpenKey (Schlüssel, Unterschlüssel [, Res [, Sam]]) ... res ist eine reservierte Ganzzahl und muss Null sein. Der Standardwert ist Null.

So sollte es so sein:

Sie haben nicht wirklich KEY_ALL_ACCESS verwenden wie here vorgeschlagen. Fügen Sie einfach 0 vor _winreg.KEY_SET_VALUE hinzu.