日历

2008 10.16 Thu
   1234
567891011
12131415161718
19202122232425
262728293031 
«» 2008 - 10 «»

文章搜索

日志文章

2008年06月06日 02:08:37

使用python操作注册表

使用python操作注册表

表10-1 Windows注册表基本项

项名

描述

HKEY_CLASSES_ROOT

是HKEY_LOCAL_MACHINESoftware 的子项,保存打开文件所对应的应用程序信息

HKEY_CURRENT_USER

是HKEY_USERS的子项,保存当前用户的配置信息

HKEY_LOCAL_MACHINE

保存计算机的配置信息,针对所有用户

HKEY_USERS

保存计算机上的所有以活动方式加载的用户配置文件

HKEY_CURRENT_CONFIG

保存计算机的硬件配置文件信息



通过使用win32api模块和win32con模块,python可以方便地访问注册表,并对其进行打开、关闭、添加项、删除项,以及添加、修改项值等操作。


1. 打开注册表

RegOpenKey(key, subkey, reserved, sam)

RegOpenKeyEx(key, subkey, reserved, sam)

两个函数的参数一样。参数含义如下:

l Key:必须为表10-1中列出的项。

l SubKey:要打开的子项。

l Reserved:必须为0。

l Sam:对打开的子项进行的操作,包括win32con.KEY_ALL_ACCESS、win32con.KEY_READ、win32con.KEY_WRITE等

key=win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,'Software',0,win32con.KEY_READ)

2. 关闭注册表

RegCloseKey(key)

其参数只有一个,其含义如下:

l Key:已经打开的注册表项的句柄。

如win32api.RegCloseKey(key)

3. 读取项值

RegQueryValue(key,subKey) 读取项的默认值

RegQueryValueEx(key,valueName) 读取某一项值

对于RegQueryValue,其参数含义如下:

l Key:已打开的注册表项的句柄。

l subKey:要操作的子项。

对于RegQueryValueEx,其参数含义如下:

l Key:已经打开的注册表项的句柄。

l valueName:要读取的项值名称。

4. 设置项值

RegSetValueEx(key,valueName,reserved,type,value) 要修改或重新设置注册表某一项的项值。如果项值存在,则修改该项值,如果不存在,则添加该项值。

RegSetValue(key,subKey,type,value) 设置项的默认值

对于RegSetValueEx,其参数含义如下:

l Key:要设置的项的句柄。

l valueName:要设置的项值名称。

l Reserved:保留,可以设为0。

l Type:项值的类型。

l Value:所要设置的值。

对于RegSetValue,其参数含义如下:

l Key:已经打开的项的句柄。

l subKey:所要设置的子项。

l Type:项值的类型,必须为win32con.REG_SZ。

l Value:项值数据,为字符串。

5. 添加、删除项

RegCreateKey(key,subKey) 向注册表中添加项

RegDeleteKey(key,subKey) 删除注册表中的项

其参数含义相同,参数含义分别如下:

l Key:已经打开的注册表项的句柄。

l subKey:所要操作(添加或删除)的子项。

Tags: python   注册表  

类别: Python |  评论(1) |  浏览(548) |  收藏
1楼 [匿名]hi9ntcax 2008年09月12日 07:58:49 Says:
%E8%B5%A2%E5%9F%BA%E8%BD%AF%E4%BB%B6%E6%94%B6%E5%BD%95%E7%9A%84%E5%9D%87%E6%98%AF%E5%9B%BD%E5%86%85%E5%A4%A7%E5%9E%8B%E7%AB%99%E7%82%B9%EF%BC%8C%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%EF%BC%8C%E6%85%A7%E8%81%AA%EF%BC%8C%E5%BD%93%E5%BD%93%EF%BC%8C%E4%B8%AD%E5%9B%BD%E5%88%B6%E9
发表评论
看不清楚,换一张