Chinaunix

标题: 请教关于_winreg中的DeleteValue问题 [打印本页]

作者: loveddie    时间: 2006-03-22 16:08
标题: 请教关于_winreg中的DeleteValue问题
我在使用DeleteValue时,它一直出现WindowsError.

  1. >>> from _winreg import *
  2. >>> run=OpenKey(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run')
  3. >>> DeleteValue(run,'TkBellExe')

  4. Traceback (most recent call last):
  5.   File "<pyshell#12>", line 1, in -toplevel-
  6.     DeleteValue(run,"TkBellExe")
  7. WindowsError: (5, '')
复制代码

python的文档是这样描述的:
DeleteValue( key, value)

Removes a named value from a registry key.
key is an already open key, or one of the predefined HKEY_* constants.
value is a string that identifies the value to remove.
我是不是使用DeleteValue哪里用错了?

用CreateKey和DeleteKey是可以正常工作的:

  1. >>> from _winreg import *
  2. >>> run=OpenKey(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run')
  3. >>>CreateKey(run,'loveeddie')
  4. <PyHKEY object at 0x00AFD130>
  5. >>>DeleteKey(run,'loveddie')
复制代码


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run是有TkBellExe这个值的,而且就算改为其他值,也出现同样的错误.
问题出在哪里呢?
作者: loveddie    时间: 2006-03-23 18:45
有没谁帮忙解答下呀?
实在搞不定这个问题,在comp.lang.python看见有个老外也在问这个问题.
我可以删除Key,权限是够的,就是删除Value是出错.那个老外也是出现这种错误.
作者: wolfg    时间: 2006-03-24 09:47
OpenKey( key, sub_key[, res = 0][, sam = KEY_READ])

看文档中对这个方法的解释,注意最后一个参数


  1. >>> from _winreg import *
  2. >>> run=OpenKey(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 0, KEY_WRITE)
  3. >>> DeleteValue(run,'TkBellExe')
复制代码

作者: 3751    时间: 2006-03-24 09:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: limodou    时间: 2006-03-24 10:33
这个倒没有注意过。不过建议使用目录浏览来打开文件。
作者: loveddie    时间: 2006-03-24 10:41
原帖由 wolfg 于 2006-3-24 09:47 发表
OpenKey( key, sub_key[, res = 0][, sam = KEY_READ])

看文档中对这个方法的解释,注意最后一个参数


[code]>>> from _winreg import *
>>> run=OpenKey(HKEY_LOCAL_MACHINE,r'SOFTW ...


BS自己,解决问题有些浮躁,应该仔细读读文档,当时看见能delete key,所以认为也应该能delete value.
呵呵,差点就email给那老外问他怎么解决的了.
必须得带上最后的2个参数才能对value操作.




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2