Найти - Пользователи
Полная версия: Реестр _winreg SetValueEx
Начало » Python для новичков » Реестр _winreg SetValueEx
1
Cover Story
Всем доброго, помогите решить проблему с написанием следующего кода:
import sys
import _winreg

regpath = "SYSTEM\\CurrentControlSet\\Services\\UsbStor"

try :
root = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, regpath)
except EnvironmentError :
print u"Указанный раздел не существует"
sys.exit(1)

# читаем значение параметра (если это надо)
print _winreg.QueryValueEx(root, "Start")

# пишем значение параметра
try :
_winreg.SetValueEx(root, "Start", 0, _winreg.REG_DWORD, 4)
except :
print u"Ошибка записи", sys.exc_info()[1]
После запуска скрипта выдает ошибку: "Ошибка записи "
ofigetitelno
:)
SetValue( key, sub_key, type, value)
***
The key identified by the key parameter must have been opened with KEY_SET_VALUE access.
Cover Story
import sys
import _winreg

regpath = "SYSTEM\\CurrentControlSet\\Services\\UsbStor"

try :
root = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, regpath)
except EnvironmentError :
print u"Указанный раздел не существует"
sys.exit(1)

# читаем значение параметра (если это надо)
print _winreg.QueryValueEx(root, "Start")

# пишем значение параметра
try :
_winreg.SetValue(root, regpath, _winreg.REG_DWORD, "4")
except :
print u"Ошибка записи", sys.exc_info()[1]
Выводит:
Ошибка записи Type must be _winreg.REG_SZ
Но тип “Start” REG_DWORD однозначно.

Ставлю: _winreg.SetValue(root, regpath, _winreg.REG_SZ, “4”)

В итоге меняется ветка: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\SYSTEM\CurrentControlSet\Services\UsbStor
И добавляется переменная без имени но со значением 4.
Мне же нужно Поменять значение переменной “Start” в ветке “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor”
Cover Story
ofigetitelno
Может и SetValue( key, sub_key, type, value) must have, но помоему он работает только с ветками реестра, а не с переменными.
ofigetitelno
:)
Нда, не дочитал…
И всё же, открывать нужно для чтения и для записи:
root = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, regpath, 0, _winreg.KEY_SET_VALUE|_winreg.KEY_READ)
и да, писать через SetValueEx
Cover Story
Я Сделал так:
root = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, regpath, 0, _winreg.KEY_ALL_ACCESS)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB