Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 6, 2009 13:26:28

Cover Story
От:
Зарегистрирован: 2008-08-26
Сообщения: 192
Репутация: +  0  -
Профиль   Отправить e-mail  

Реестр _winreg SetValueEx

Всем доброго, помогите решить проблему с написанием следующего кода:

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]
После запуска скрипта выдает ошибку: "Ошибка записи "



Python 2.7.3
Pyside 1.1.2

Офлайн

#2 Янв. 6, 2009 15:21:06

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

Реестр _winreg SetValueEx

:)
SetValue( key, sub_key, type, value)
***
The key identified by the key parameter must have been opened with KEY_SET_VALUE access.



Офлайн

#3 Янв. 6, 2009 19:47:28

Cover Story
От:
Зарегистрирован: 2008-08-26
Сообщения: 192
Репутация: +  0  -
Профиль   Отправить e-mail  

Реестр _winreg SetValueEx

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”



Python 2.7.3
Pyside 1.1.2

Офлайн

#4 Янв. 7, 2009 10:29:58

Cover Story
От:
Зарегистрирован: 2008-08-26
Сообщения: 192
Репутация: +  0  -
Профиль   Отправить e-mail  

Реестр _winreg SetValueEx

ofigetitelno
Может и SetValue( key, sub_key, type, value) must have, но помоему он работает только с ветками реестра, а не с переменными.



Python 2.7.3
Pyside 1.1.2

Офлайн

#5 Янв. 9, 2009 20:47:10

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

Реестр _winreg SetValueEx

:)
Нда, не дочитал…
И всё же, открывать нужно для чтения и для записи:
root = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, regpath, 0, _winreg.KEY_SET_VALUE|_winreg.KEY_READ)
и да, писать через SetValueEx



Офлайн

#6 Янв. 10, 2009 09:29:28

Cover Story
От:
Зарегистрирован: 2008-08-26
Сообщения: 192
Репутация: +  0  -
Профиль   Отправить e-mail  

Реестр _winreg SetValueEx

Я Сделал так:
root = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, regpath, 0, _winreg.KEY_ALL_ACCESS)



Python 2.7.3
Pyside 1.1.2

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version