亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

操作Windows注冊表的簡單的Python程序制作教程

 更新時間:2015年04月07日 17:24:25   投稿:goldensun  
這篇文章主要介紹了操作Windows注冊表的簡單的Python程序制作教程,包括遠程對注冊表進行修改的實現(xiàn),需要的朋友可以參考下

通過Python操作注冊表有兩種方式,第一種是通過Python的內置模塊 _winreg;另一種方式就是Win32 Extension For Python 的win32api模塊,但是需要進行額外的安裝。這里主要給出一些_winreg和win32api的Demo代碼。

 

1、 _winrg

可以參考官方的參考文檔:

http://docs.python.org/library/_winreg.html

http://www.python.org/doc/2.6.2/library/_winreg.html

 

1.1 讀取 
 

import _winreg
 
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,r"Software\Microsoft\Windows\CurrentVersion\Explorer")
 
 #獲取該鍵的所有鍵值,因為沒有方法可以獲取鍵值的個數(shù),所以只能用這種方法進行遍歷
 try:
  i = 0
while1:
#EnumValue方法用來枚舉鍵值,EnumKey用來枚舉子鍵
     name, value, type = _winreg.EnumValue(key, i)
print repr(name),
    i +=1
 except WindowsError:
print
 
 #如果知道鍵的名稱,也可以直接取值
 value, type = _winreg.QueryValueEx(key, "EnableAutoTray")

1.2 創(chuàng)建修改
 

import _winreg
 
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,r"Software\Microsoft\Windows\CurrentVersion\Explorer")
 
#刪除鍵
_winreg.DeleteKey(key, "Advanced")
 
#刪除鍵值
_winreg.DeleteValue(key, "IconUnderline")
 
#創(chuàng)建新的鍵
newKey = _winreg.CreateKey(key,"MyNewkey")
 
#給新創(chuàng)建的鍵添加鍵值
_winreg.SetValue(newKey,"ValueName",0,"ValueContent")

1.3 訪問遠程注冊表
 
1 #第二參數(shù)必須是HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE等預先定義好的值,拿到返回的key后就可以進行操作了
2 key = _winreg.ConnectRegisty("IP地址或者機器名",_winreg.HKEY_CURRENT_USER)

2、 win32api

win32api 和 _winreg 的方法很類似,一般是多了一個前綴"Reg",使用方法很基本上一樣,這里就不給具體的Demo代碼了。

就一般的應用來說,使用_winreg就足夠了,但是_winreg有一個問題,如果Python是32位的,并且是運行在64位的操作系統(tǒng)上時就會有一點小問題,由于操作系統(tǒng)會進行注冊表的重定向,32位的程序無法訪問64位應用程序的注冊表。在Python2.6以前這個問題都沒有解決,在Python2.7中通過補丁的形式修正了這個問題(http://bugs.python.org/issue7347)。

通過例子來說明一下這個問題,假設我們的操作系統(tǒng)是64位的,然后在上面安裝了32位的Python,看如下的Python代碼:
 

import _winreg
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,r"Software\Microsoft\Windows")
newKey = _winreg.CreateKey(key,"MyNewkey")

上面的代碼的執(zhí)行不會像預想那樣創(chuàng)建如下的鍵:

"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows"

而是會創(chuàng)建如下的鍵:

"HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows"

因為在64位的windows操作系統(tǒng)下,64位的程序和32位程序的注冊表是分開的,32位應用程序對注冊表的操作(讀、寫)都會被重定向到Wow6432Node下面, 64位應用程序的訪問注冊表的行為則沒有變化。因此如果我們的32位應用程序確實要訪問64位程序所用到的注冊表的話,就會有點問題。由于_winreg本身的問題,它對這種情況的支持不太充分,對windows api的封裝有一些bug,這個時候就需要用到 win32api 模塊。

下面用win32api提供的方法來修改上面的代碼如下:
 

import win32api
 
import win32con
 
key = win32api.RegCreateKeyEx(win32con.HKEY_LOCAL_MACHINE, r"Software\Microsoft\Windows", win32con.WRITE_OWNER |win32con.KEY_WOW64_64KEY|win32con.KEY_ALL_ACCESS)
win32api.RegSetValueEx (key,"MyNewkey", 0, win32con.REG_SZ, keyValue)

上面的win32con.KEY_WOW64_64KEY意思就是直接訪問64位注冊表,不要進行重定向,默認的參數(shù)是win32con.KEY_WOW64_32KEY。

相關文章

  • Python常問的100個面試問題匯總(下篇)

    Python常問的100個面試問題匯總(下篇)

    這篇文章主要介紹了Python常問的100個面試問題匯總(下篇),文章內容詳細,簡單易懂,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2023-01-01
  • Python 12306搶火車票腳本 Python京東搶手機腳本

    Python 12306搶火車票腳本 Python京東搶手機腳本

    這篇文章主要為大家詳細介紹了Python 12306搶火車票腳本和Python京東搶手機腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python使用擴展庫pywin32實現(xiàn)批量文檔打印實例

    Python使用擴展庫pywin32實現(xiàn)批量文檔打印實例

    這篇文章主要介紹了Python使用擴展庫pywin32實現(xiàn)批量文檔打印實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 一文了解python 3 字符串格式化 F-string 用法

    一文了解python 3 字符串格式化 F-string 用法

    本文介紹在python 3 編程中,如何進行字符串格式化。介紹了F-string的用法,通過實例代碼給大家介紹的非常詳細,對大家的工作或學習具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-03-03
  • Python實現(xiàn)以時間換空間的緩存替換算法

    Python實現(xiàn)以時間換空間的緩存替換算法

    緩存是指可以進行高速數(shù)據(jù)交換的存儲器,它先于內存與CPU交換數(shù)據(jù),因此速度很快。緩存就是把一些數(shù)據(jù)暫時存放于某些地方,可能是內存,也有可能硬盤。下面給大家介紹Python實現(xiàn)以時間換空間的緩存替換算法,需要的朋友參考下
    2016-02-02
  • Python搭建代理IP池實現(xiàn)檢測IP的方法

    Python搭建代理IP池實現(xiàn)檢測IP的方法

    這篇文章主要介紹了Python搭建代理IP池實現(xiàn)檢測IP的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • python訪問sqlserver示例

    python訪問sqlserver示例

    這篇文章主要介紹了python訪問sqlserver示例,需要的朋友可以參考下
    2014-02-02
  • 分享python?寫?csv?文件的兩種方法

    分享python?寫?csv?文件的兩種方法

    這篇文章主要向大家分享的是python?寫?csv?文件的兩種方法,具體要怎么將內容寫入csv文件呢?下面文章我們將使用csv和pandas的方法實現(xiàn),下文詳細實現(xiàn)介紹需要的小伙伴可以參考一下
    2022-04-04
  • Pyspider中給爬蟲偽造隨機請求頭的實例

    Pyspider中給爬蟲偽造隨機請求頭的實例

    今天小編就為大家分享一篇Pyspider中給爬蟲偽造隨機請求頭的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python中輸入和輸出(打?。?shù)據(jù)實例方法

    Python中輸入和輸出(打?。?shù)據(jù)實例方法

    在本篇文章里小編給大家整理的是關于Python中輸入和輸出(打?。?shù)據(jù)實例方法以及相關知識點,有需要的朋友們參考下。
    2019-10-10

最新評論