使用python操作注冊表的方法最近學習了一下,現在做一下筆記,由于對Python語言的使用還不是很熟練,所以寫不出高大上的結構,但是解決問題搓搓有余了。
說道注冊表順便也說一說環境變量的修改(放下下一節講),里面有許多相似的地方,我覺得放在一起說會比較合適。
操作注冊表
操作注冊表主要引入winreg包,winreg包是python3自帶的包,python2的名字和python3有區別_winreg,在這里只關注python3
key = winreg.OpenKeyEx(winreg.HKEY_CLASSES_ROOT, r"路徑的名字")
OpenKeyEx打開一個注冊表,路徑不寫就是根目錄,給個圖大家就明白了
點擊確定打開windows注冊表
上面寫的winreg.HKEY_CLASSES_ROOT,就是上圖中其中之一,想要打開哪個就寫哪個的名字 •新建一個分支
newKey = winreg.CreateKey(key,"文件名")
•獲取當前名稱對應的值
winreg.QueryValueEx(key, '名稱')
例如:winreg.QueryValueEx(key, 'PATH')
•設置當前目錄下的值
winreg.SetValueEx(key,"名稱",0,winreg.REG_EXPAND_SZ, "值")
例子:
key = winreg.OpenKeyEx(winreg.HKEY_CLASSES_ROOT, r"") #創建新的鍵 newKey = winreg.CreateKey(key,"aTest") #給新創建的鍵添加鍵值 winreg.SetValueEx(newKey,"a1",0,winreg.REG_EXPAND_SZ,"aaa") winreg.SetValueEx(newKey,"b1","star",1, "bbb") #創建新的子鍵 key = winreg.OpenKeyEx(winreg.HKEY_CLASSES_ROOT, r"aTest") newKey = winreg.CreateKey(key,"DefaultIcon") winreg.SetValueEx(newKey,"",0,winreg.REG_EXPAND_SZ, "path ,1") newKey = winreg.CreateKey(key,"shell") key = winreg.OpenKeyEx(winreg.HKEY_CLASSES_ROOT, r"aTest/shell") newKey = winreg.CreateKey(key,"open") key = winreg.OpenKeyEx(winreg.HKEY_CLASSES_ROOT, r"aTest/shell/open") newKey = winreg.CreateKey(key,"command") winreg.SetValueEx(newKey,"url",0,winreg.REG_EXPAND_SZ, "/"path/" /"%1/"")
以上例子可以使用Url protocol,使用瀏覽器啟動本地exe。直接將上文中的path換成本地exe的路徑就可以了。
Python 操作注冊表
通過Python的內置模塊winreg這里主要給出一些winreg的Demo代碼
Python2:import _winreg、Python3:import winreg
#!python37# -*- coding: utf-8 -*-# coding:utf-8import winregdef obtain(): # 獲取該鍵的所有鍵值 key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software//Inspiry//BasePay//Address") # 獲取該鍵的所有鍵值,遍歷枚舉 try: i = 0 while 1: # EnumKey用來枚舉子鍵,EnumValue方法用來枚舉鍵值, name, value, type1 = winreg.EnumValue(key, i) # print(repr(name),value) return value i +=1 except WindowsError: print('error')if __name__ == '__main__': obtain()
新聞熱點
疑難解答