python修改註冊表

與註冊表操做相關的函數能夠分爲打開註冊表、關閉註冊表、讀取項值、c添加項值、添加項,以及刪除項等幾類。python

表1   Windows註冊表基本項api

項名函數

描述.net

HKEY_CLASSES_ROOTip

是HKEY_LOCAL_MACHINE\Software 的子項,保存打開文件所對應的應用程序信息字符串

HKEY_CURRENT_USERget

是HKEY_USERS的子項,保存當前用戶的配置信息io

HKEY_LOCAL_MACHINEtable

保存計算機的配置信息,針對全部用戶import

HKEY_USERS

保存計算機上的全部以活動方式加載的用戶配置文件

HKEY_CURRENT_CONFIG

保存計算機的硬件配置文件信息

 

經過使用win32api模塊和win32con模塊,python能夠方便地訪問註冊表,並對其進行打開、關閉、添加項、刪除項,以及添加、修改項值等操做。

1. 打開註冊表

RegOpenKey(key,   subkey,   reserved,   sam)

RegOpenKeyEx(key,   subkey,   reserved,   sam)

兩個函數的參數同樣。參數含義以下:

l Key:必須爲表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)

   print key

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

 

 

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:要讀取的項值名稱。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

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)   # 返回項的子項數目、項值數目,以及最後一次修改時間

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

 

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:項值數據,爲字符串。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

# 將「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer」
的默認值設爲python
>>> win32api.RegSetValue(key,'',win32con.REG_SZ,'python')
# 將其「Version」設置爲7.0.2900.2180
>>> win32api.RegSetValueEx(key,'Version',0,win32con.REG_SZ,'7.0.2900.2180')

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

 

5. 添加、刪除項

RegCreateKey(key,subKey) 向註冊表中添加項

RegDeleteKey(key,subKey) 刪除註冊表中的項

其參數含義相同,參數含義分別以下:

l Key:已經打開的註冊表項的句柄。

subKey:所要操做(添加或刪除)的子項。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

# 向「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer」添加子項「Python」
>>> win32api.RegCreateKey(key,'Python')
  # 新建立的子項的句柄
# 刪除剛纔建立的子項「Python」
>>> win32api.RegDeleteKey(key,'Python')
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

6. 錯誤處理

ImportError: No module named win32api出現異常

實際是須要安裝和本身python兼容的win32all 在http://starship.python.net/crew/mhammond/downloads/ 能夠下載適合本身的版本,安裝;記住必須重啓纔可生效。

相關文章
相關標籤/搜索