当前位置 主页 > 网站技术 > 代码类 >

    Python操作注册表详细步骤介绍

    栏目:代码类 时间:2020-02-05 18:06

    Python操作注册表步骤之1.打开注册表

    对注册表进行操作前,必须打开注册表。在Python中,可以使用以下两个函数:RegOpenKey和RegOpenKeyEx。其函数原型分别如下所示。

    RegOpenKey(key, subKey , reserved , sam)RegOpenKeyEx
    (key, subKey , reserved , sam)

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

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

    subKey:要打开的子项。

    reserved:必须为0。

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

    以下实例实现打开注册表“HKEY_CURRENT_USER\Software”项。

    >>> import win32api # 导入win32api模块
    >>> import win32con # 导入win32con模块# 使用RegOpenKey打开注册表项
    >>> key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,
    'Software',0,win32con.KEY_READ)
    >>> print key # key为打开的项的句柄 

    Python操作注册表步骤之2.关闭注册表

    打开的注册表,在操作完成后,需要关闭。在Python中使用RegCloseKey函数关闭打开的注册表项。其函数原型如下所示。

    RegCloseKey(key)

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

    key:已经打开的注册表项。

    以下实例关闭一个已经打开的注册表项。

    # 关闭刚才打开的注册表项

    >>> win32api.RegCloseKey(key)

    >>> print key

    Python操作注册表步骤之3.读取项值

    在打开注册表项以后,可以使用RegQueryValue函数读取项的默认值。如果要读取某一项值,可以使用RegQueryValueEx函数。其函数原型分别如下所示。

    RegQueryValue(key, subKey )RegQueryValueEx(key, valueName )

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

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

    subKey:要操作的子项。

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

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

    valueName:要读取的项值名称。

    以下实例实现对“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer”项的操作。

    >>> import win32api 
    >>> import win32con# 打开“HKEY_LOCAL_MACHINE\SOFTWARE
    \Microsoft\Internet Explorer”项 
    >>> key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,
    'SOFTWARE\\Microsoft\\Internet Explorer',0, win32con.KEY_ALL_ACCESS) 
    >>> win32api.RegQueryValue(key,'')  
    # 读取项的默认值''  
    # 输出为空,表示其默认值未设置#读取项值名称为Version的项值数据,
    也就是Internet Explorer的版本 
    >>> win32api.RegQueryValueEx(key,'Version') ('6.0.2900.2180', 1) 
    >>> win32api.RegQueryInfoKey(key)  
    # RegQueryInfoKey函数查询项的基本信息(26, 7, 128178812229687500L)  
    # 返回项的子项数目、项值数目,以及最后一次修改时间 

    Python操作注册表步骤之4.设置项值

    要修改或者重新设置注册表某一项的项值可以使用RegSetValueEx函数,如果要设置项的默认值可以使用RegSetValue函数。需要说明的是,对于RegSetValueEx,如果要设置的项值不存在,那么RegSetValueEx会添加该项值,如果存在,则修改该项值。其函数原型分别如下所示。

    RegSetValueEx(key, valueName, reserved, type, value)RegSetValue
    (key, subKey, type, value)