2016-04-09 4 views
1

Я хотел, чтобы добавить ключ реестра с питоном с помощью этого кода:Доступ запрещен в питоне

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() 

Но он показывает эту ошибку WindowsError: [Error 5] Access is denied.

Любое решение?

EDIT - я уже запустить его в качестве администратора

edit2 - Это связано с KEY_ALL_ACCESS

+0

Запустить интерпретатор Python как admin. –

+0

@Rogalski Уже сделано –

+0

Не должно ли строка пути '' C: \\ Windows \\ System32 \\ SystemSetting \\ Block.exe''? – martineau

ответ

1

Запустите программу питон в командной строке. В Windows есть программа command prompt (Admin). Или просто щелкните правой кнопкой мыши по Command prompt и выберите Run as administrator. Ref

+0

какой программой python? сценарий? –

+0

yup, сохраните программу как файл py и запустите ее в командной строке. – Mitty

+0

Спасибо, что это сработало –

0

Это не про runnig как admin. Я попробовал запустить администратор и получил сообщение Acces is denied.

Вы должны использовать зарезервированное целое число, которое по умолчанию равно 0.

_winreg.OpenKey (key, sub_key [, res [, sam]]) ... res является зарезервированным целым числом и должен быть равен нулю. Значение по умолчанию равно нулю.

Таким образом, это должно быть так:

Вы реально не должны использовать KEY_ALL_ACCESS как предложил here. Просто добавьте, что 0 до _winreg.KEY_SET_VALUE.

Смежные вопросы