欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)操縱控制windows注冊(cè)表的方法分析

 更新時(shí)間:2019年05月24日 11:40:29   作者:TKtalk  
這篇文章主要介紹了Python實(shí)現(xiàn)操縱控制windows注冊(cè)表的方法,結(jié)合實(shí)例形式分析了Python使用_winreg模塊以及win32api模塊針對(duì)Windows注冊(cè)表操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)操縱控制windows注冊(cè)表的方法。分享給大家供大家參考,具體如下:

使用_winreg模塊的話

基本概念:

  • KEY 鍵
  • Value 值

函數(shù)和作用:

CloseKey() - 關(guān)閉一個(gè)Key
ConnectRegistry() - 鏈接到其他機(jī)器的注冊(cè)表
CreateKey() - 創(chuàng)建一個(gè)Key
DeleteKey() - 刪除一個(gè)Key
DeleteValue() - 刪除一個(gè)Key里面的值(value)
EnumKey() - 為已經(jīng)打開(kāi)的Key里面的子鍵建立索引
EnumValue() - 為打開(kāi)的鍵中的值建立索引
FlushKey() - 回寫(xiě)所有的鍵屬性改變到注冊(cè)表
LoadKey() - 從指定文件讀入鍵信息
OpenKey() - 打開(kāi)一個(gè)鍵
OpenKeyEx()
QueryValue() - 在注冊(cè)表中檢索一個(gè)鍵的路徑
QueryValueEx() - 注冊(cè)表中檢索一個(gè)鍵的路徑
QueryInfoKey() - 返回關(guān)于鍵的信息
SaveKey() - 保存鍵到文件
SetValue() - 設(shè)置一個(gè)鍵
SetValueEx() - 設(shè)置一個(gè)值

1、讀取

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

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")

3、 訪問(wèn)遠(yuǎn)程注冊(cè)表

#第二參數(shù)必須是HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE等預(yù)先定義好的值,拿到返回的key后就可以進(jìn)行操作了
key = _winreg.ConnectRegisty("IP地址或者機(jī)器名",_winreg.HKEY_CURRENT_USER)

4、win32api

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

就一般的應(yīng)用來(lái)說(shuō),使用_winreg就足夠了,但是_winreg有一個(gè)問(wèn)題,如果Python是32位的,并且是運(yùn)行在64位的操作系統(tǒng)上時(shí)就會(huì)有一點(diǎn)小問(wèn)題,由于操作系統(tǒng)會(huì)進(jìn)行注冊(cè)表的重定向,32位的程序無(wú)法訪問(wèn)64位應(yīng)用程序的注冊(cè)表。在Python2.6以前這個(gè)問(wèn)題都沒(méi)有解決,在Python2.7中通過(guò)補(bǔ)丁的形式修正了這個(gè)問(wèn)題(http://bugs.python.org/issue7347)。

通過(guò)例子來(lái)說(shuō)明一下這個(gè)問(wèn)題,假設(shè)我們的操作系統(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í)行不會(huì)像預(yù)想那樣創(chuàng)建如下的鍵:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows

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

HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows

因?yàn)樵?4位的windows操作系統(tǒng)下,64位的程序和32位程序的注冊(cè)表是分開(kāi)的,32位應(yīng)用程序?qū)ψ?cè)表的操作(讀、寫(xiě))都會(huì)被重定向到Wow6432Node下面, 64位應(yīng)用程序的訪問(wèn)注冊(cè)表的行為則沒(méi)有變化。因此如果我們的32位應(yīng)用程序確實(shí)要訪問(wèn)64位程序所用到的注冊(cè)表的話,就會(huì)有點(diǎn)問(wèn)題。由于_winreg本身的問(wèn)題,它對(duì)這種情況的支持不太充分,對(duì)windows api的封裝有一些bug,這個(gè)時(shí)候就需要用到 win32api 模塊。

下面用win32api提供的方法來(lái)修改上面的代碼如下:

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意思就是直接訪問(wèn)64位注冊(cè)表,不要進(jìn)行重定向,默認(rèn)的參數(shù)是win32con.KEY_WOW64_32KEY。

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 一文帶你深入探究Python?Collections模塊

    一文帶你深入探究Python?Collections模塊

    Python中Collections模塊實(shí)現(xiàn)了一些專門化的容器,提供了對(duì)?Python?的通用內(nèi)建容器?dict、list、set?和?tuple?的補(bǔ)充,下面我們就來(lái)了解一下它的具體用法吧
    2023-11-11
  • python監(jiān)控網(wǎng)卡流量并使用graphite繪圖的示例

    python監(jiān)控網(wǎng)卡流量并使用graphite繪圖的示例

    這篇文章主要介紹了python監(jiān)控網(wǎng)卡流量并使用graphite繪圖的示例,需要的朋友可以參考下
    2014-04-04
  • 基于Python編寫(xiě)一個(gè)中秋節(jié)嫦娥投食小游戲

    基于Python編寫(xiě)一個(gè)中秋節(jié)嫦娥投食小游戲

    今天給大家?guī)?lái)的是給玉兔投喂月餅的小游戲。八月十五中秋夜晚,讓我們對(duì)著月亮許愿:希望我們?cè)谝夂驮谝馕覀兊娜?,諸邪避退、百事無(wú)忌、平安喜樂(lè)、萬(wàn)事勝意。提前祝大家中秋節(jié)快樂(lè)
    2022-09-09
  • python selenium 執(zhí)行完畢關(guān)閉chromedriver進(jìn)程示例

    python selenium 執(zhí)行完畢關(guān)閉chromedriver進(jìn)程示例

    今天小編就為大家分享一篇python selenium 執(zhí)行完畢關(guān)閉chromedriver進(jìn)程示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Django如何實(shí)現(xiàn)防止XSS攻擊

    Django如何實(shí)現(xiàn)防止XSS攻擊

    這篇文章主要介紹了Django如何實(shí)現(xiàn)防止XSS攻擊,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • python委派生成器的具體方法

    python委派生成器的具體方法

    在本篇內(nèi)容中小編給大家整理了一篇關(guān)于python委派生成器的具體方法內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2022-11-11
  • python datetime處理時(shí)間小結(jié)

    python datetime處理時(shí)間小結(jié)

    這篇文章主要介紹了python datetime處理時(shí)間小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python用正則表達(dá)式實(shí)現(xiàn)爬取古詩(shī)文網(wǎng)站信息

    Python用正則表達(dá)式實(shí)現(xiàn)爬取古詩(shī)文網(wǎng)站信息

    這篇文章主要給大家介紹了關(guān)于Python如何利用正則表達(dá)式爬取爬取古詩(shī)文網(wǎng)站信息,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • 三種Python比較兩個(gè)時(shí)間序列在圖形上是否相似的方法分享

    三種Python比較兩個(gè)時(shí)間序列在圖形上是否相似的方法分享

    這篇文章主要為大家詳細(xì)介紹了三種Python中比較兩個(gè)時(shí)間序列在圖形上是否相似的方法,文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以了解一下
    2023-03-03
  • python程序控制NAO機(jī)器人行走

    python程序控制NAO機(jī)器人行走

    這篇文章主要為大家詳細(xì)介紹了python程序控制NAO機(jī)器人行走,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04

最新評(píng)論