標籤:controls 參考 machine 如何 10.10 images odi user 5.0
Python模組——_winreg操作註冊表 (2010-01-22 13:47:01)
轉載▼
標籤: python _winreg 註冊表 刪除鍵 name 預設閘道 utf-8 it |
分類: Python |
用python操作修改windows註冊表,顯然要比用C或者C++簡單。
主要參考資料:官方文檔:http://docs.python.org/library/_winreg.html
通過python操作註冊表主要有兩種方式,一種是通過python的內建模組 _winreg,另一種方式就是Win32 Extension For Python的win32api模組。這裡主要簡單看看用內建模組 _winreg如何操作註冊表。
1.讀取
讀取用的方法是OpenKey方法:開啟特定的key
_winreg.OpenKey(key,sub_key,res=0,sam=KEY_READ)
例子:此例子是顯示了本機網路設定的一些登錄機碼
#!/usr/bin/env python
#coding=utf-8
import _winreg
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{0E184877-D910-4877-B 4C2-04F487B6DBB7}")
#擷取該鍵的所有索引值,遍曆枚舉
try:
i=0
while 1:
#EnumValue方法用來枚舉索引值,EnumKey用來枚舉子鍵
name,value,type = _winreg.EnumValue(key,i)
print repr(name),value,type
i+=1
except WindowsError:
print
#假如知道鍵名,也可以直接取值
value,type = _winreg.QueryValueEx(key,"DhcpDefaultGateway")
print "預設閘道地址----",value,type
啟動並執行結果如下:
‘UseZeroBroadcast‘ 0 4
‘EnableDeadGWDetect‘ 1 4
‘EnableDHCP‘ 1 4
‘IPAddress‘ [u‘0.0.0.0‘] 7
‘SubnetMask‘ [u‘0.0.0.0‘] 7
‘DefaultGateway‘ [] 7
‘DefaultGatewayMetric‘ [] 7
‘NameServer‘ 10.0.0.10 1
‘Domain‘ 1
‘RegistrationEnabled‘ 1 4
‘RegisterAdapterName‘ 0 4
‘TCPAllowedPorts‘ [u‘0‘] 7
‘UDPAllowedPorts‘ [u‘0‘] 7
‘RawIPAllowedProtocols‘ [u‘0‘] 7
‘NTEContextList‘ [u‘0x00000004‘] 7
‘DhcpClassIdBin‘ None 3
‘DhcpServer‘ 10.104.4.1 1
‘Lease‘ 907200 4
‘LeaseObtainedTime‘ 1264122113 4
‘T1‘ 1264575713 4
‘T2‘ 1264915913 4
‘LeaseTerminatesTime‘ 1265029313 4
‘IPAutoconfigurationAddress‘ 0.0.0.0 1
‘IPAutoconfigurationMask‘ 255.255.0.0 1
‘IPAutoconfigurationSeed‘ 0 4
‘AddressType‘ 0 4
‘IsServerNapAware‘ 0 4
‘DhcpIPAddress‘ 10.104.5.15 1
‘DhcpSubnetMask‘ 255.255.254.0 1
‘DhcpRetryTime‘ 453598 4
‘DhcpRetryStatus‘ 0 4
‘DhcpNameServer‘ 10.0.0.10 1
‘DhcpDefaultGateway‘ [u‘10.104.4.1‘] 7
‘DhcpSubnetMaskOpt‘ [u‘255.255.254.0‘] 7
預設閘道地址---- [u‘10.104.4.1‘] 7
2.建立 修改註冊表
建立key:_winreg.CreateKey(key,sub_key)
刪除key: _winreg.DeleteKey(key,sub_key)
刪除索引值: _winreg.DeleteValue(key,value)
給建立的key賦值: _winreg.SetValue(key,sub_key,type,value)
例子:
#!/usr/bin/env python
#coding=utf-8
import _winreg
key=_winreg.OpenKey(_winreg.HKEY_CURRENT_USER,r"Software\Microsoft\Windows\CurrentVersion\Explorer")
#刪除鍵
_winreg.DeleteKey(key, "Advanced")
#刪除索引值
_winreg.DeleteValue(key, "IconUnderline")
#建立新的
newKey = _winreg.CreateKey(key,"MyNewkey")
#給新建立的鍵添加索引值
_winreg.SetValue(newKey,"ValueName",0,"ValueContent")
轉 Python模組——_winreg操作註冊表