當前位置 主頁 > 網站技術 > 代碼類 > 最大化 縮小

    python3操作注冊表的方法(Url protocol)

    欄目:代碼類 時間:2020-02-05 18:10

    使用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-8
    
    import winreg
    
    def 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()

    好了這篇文章就介紹到這了,希望以后多多支持IIS7站長之家。

    下一篇:沒有了
教我怎样炒股