Я хочу добавить сценарий к запуску Windows, написав новое значение для запуска раздела реестра. У меня есть следующий код в python.Python: Запись значения в реестр
from _winreg import *
def setScriptAtStartup(
value_name,
bAdd,
script_path=None
):
'''
:param value_name: the name value to be used in registry
:param bAdd: TRUE = Add, FALSE = Remove
:param script_path: path to run at startup
:return:
'''
if bAdd and script_path == None:
return False
aReg = ConnectRegistry(None, HKEY_LOCAL_MACHINE)
print r"*** Writing to SOFTWARE\Microsoft\Windows\CurrentVersion\Run ***"
try:
aKey = OpenKey(aReg, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 0, KEY_WRITE)
if(bAdd):
SetValueEx(aKey, value_name, 0, REG_SZ, script_path)
else:
DeleteValue(aKey, value_name)
except EnvironmentError:
print "Encountered problems writing into the Registry..."
CloseKey(aKey)
CloseKey(aReg)
return
Проблема заключается в том, что, когда я вызвать функцию OpenKey, всегда поднимают EnvironmentError, и я не могу понять, почему. Я проверил путь, и он действительный. Кроме того, я попытался открыть только ключ SOFTWARE, и он снова не работает.
Что я могу сделать, чтобы исправить эту проблему? Спасибо
Просматривает ли чтение из ключевой работы? –
Вы используете 32-битный Python на компьютере с 64-битной Windows? Если это так, см. [_Cannot Write в реестр под HKEY_LOCAL_MACHINE \ Software_] (http://stackoverflow.com/a/4951064/355230). – martineau