damoshayu.cn,苍井空浴缸大战猛男120分钟,网址你懂的,中国女人内射6XXXXXWWW

注冊表 命令

前沿拓展:

注冊表 命令

regedit。使用婷情美西告略方法如下:1、第一在電腦桌面找到左下角的windows圖標(biāo),右鍵單擊它。2、第二在彈出來的菜單欄里面點擊命令提示符選項進入。3、點擊了之后就進入到命令提示符的界面,那個界面“G:UsersAdministrator>”,并將光標(biāo)停留在后面。4、接著在此后面輸入注冊表的命令“regedit”。5、輸入之后,按回車鍵,這樣就可以打開注冊表了。


前言

大家好,我是IT共享者,人稱皮皮。

注冊表這個東西大家可能都不是很熟悉,因為我們平時用到的少;但是它是Windows的核心,很多軟件的啟動和日志記錄什么的都包含在里面,可以說它是一個大型的數(shù)據(jù)庫也不為過,今天我們就來看看Python是如何**作注冊表的吧。

一、注冊表初次見面

進入系統(tǒng)注冊表的方法多種多樣,最常見的就是運行窗口輸入命令“regedit”,即可進入注冊表:

注冊表 命令

注冊表中的幾個菜單分別對應(yīng)機器的根目錄登陸的用戶信息和本地機器信息以及用戶信息和本地配置信息等。

二、認識**作注冊表的模塊

在Python中就有這么一個神奇的模塊,它可以用來**作注冊表。它就是—–"winreg",一個Python自帶的**作注冊表的模塊。

三、導(dǎo)入import winreg1.常量

”winreg“總有很多有用的方法,基本上就是**作注冊表中的鍵值,我們挑幾個重要的來說說。第一我們來了解下”winreg“中的各個常量:

1).HKEY_ 常量winreg.HKEY_CLASSES_ROOT #存儲應(yīng)用和shell的信息
winreg.HKEY_CURRENT_USER #當(dāng)前用戶自定義的信息
winreg.HKEY_LOCAL_MACHINE #計算機系統(tǒng)所有的信息
winreg.HKEY_USERS #所有用戶信息
winreg.HKEY_PERFORMANCE_DATA #性能數(shù)據(jù)
winreg.HKEY_CURRENT_CONFIG #本地計算機系統(tǒng)的硬件配置文件
winreg.HKEY_DYN_DATA #windows98后的版本無法使用2).訪問權(quán)限winreg.KEY_ALL_ACCESS #所有權(quán)限
winreg.KEY_WRITE #可寫
winreg.KEY_READ #可讀
winreg.KEY_EXECUTE #可執(zhí)行相當(dāng)于KEY_READ
winreg.KEY_QUERY_VALUE #查詢注冊表鍵值
winreg.KEY_SET_VALUE #創(chuàng)建、刪除或設(shè)置一組注冊表值
winreg.KEY_CREATE_SUB_KEY #創(chuàng)建一個注冊表子項的注冊表鍵
winreg.KEY_ENUMERATE_SUB_KEYS #枚舉注冊表子項所需的注冊表鍵
winreg.KEY_NOTIFY #修改注冊表鍵時的提示
winreg.KEY_CREATE_LINK #創(chuàng)建一個鏈接,預(yù)留給系統(tǒng)用3).64位的具體應(yīng)用winreg.KEY_WOW64_64KEY #在64位Windows應(yīng)用程序應(yīng)該運行在64位注冊表視圖
winreg.KEY_WOW64_32KEY #在64位Windows應(yīng)用程序應(yīng)該運行在32位注冊表視圖4).值類型winreg.REG_BINARY #任何形式的二進制數(shù)據(jù)
winreg.REG_DWORD #32位的數(shù)
winreg.REG_DWORD_LITTLE_ENDIAN #32位的數(shù)字在低位優(yōu)先的格式,相當(dāng)于REG_DWORD
winreg.REG_DWORD_BIG_ENDIAN #32位的數(shù)字在高位優(yōu)先的格式
winreg.REG_EXPAND_SZ #以null結(jié)尾的字符串包含環(huán)境變量的引用(% %)
winreg.REG_LINK #Unicode符號鏈接
winreg.REG_MULTI_SZ #一個以null結(jié)尾的字符串序列,由兩個空字符結(jié)束
winreg.REG_NONE #沒有定義的值類型
winreg.REG_QWORD #64位的數(shù)
winreg.REG_QWORD_LITTLE_ENDIAN #在低位優(yōu)先一個64位的數(shù)字格式,相當(dāng)于REG_QWORD
winreg.REG_RESOURCE_LIST #設(shè)備驅(qū)動器資源列表
winreg.REG_FULL_RESOURCE_DESCRIPTOR #硬件設(shè)置
winreg.REG_RESOURCE_REQUIREMENTS_LIST #硬件資源列表
winreg.REG_SZ #一個以null結(jié)尾的字符串

四、注冊表相關(guān)**作1.連接遠程計算機注冊表reg=winreg.ConnectRegistry('\計算機名',winreg.HKEY_LOCAL_MACHINE)#返回值是所開打鍵的句柄
#第一個參數(shù)是指遠程計算機名,第二個參數(shù)是指注冊表中的鍵,如HKEY_LOCAL_MACHINE,它是winreg中的常量。

不過我們在這里要注意的是,如果遠程注冊表沒有系統(tǒng)管理員權(quán)限,是無**常訪問注冊表的。所以我們先要判斷下它的訪問權(quán)限。這里就要用到我們之前講的"ctypes"模塊中的判斷用戶是否是管理員用戶的方法了。

import ctypes
import sys
def admin():
aa=ctypes.windll.shell32.IsUserAnAdmin()
return aa

if admin()==1: #有管理員權(quán)限可打開遠程注冊表
winreg.ConnectRegistry('\計算機名',winreg.HKEY_LOCAL_MACHINE)
else:
if sys.version_info[0]==3: #python版本是3以上的版本
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
else: #python2 版本
ctypes.windll.shell32.ShellExecuteW(None, u"runas", unicode(sys.executable), unicode(__file__), None, 1)2.關(guān)閉連接注冊表

連接之后我們不想用了,就要隨手把它給關(guān)閉了,也很簡單,只要拿到打開注冊表的句柄,就可以關(guān)閉了。

winreg.CloseKey(reg)注冊表 命令

可以看到句柄的值不一樣。

其實還有一種方法,就是利用注冊處理對象的方法來關(guān)閉。

reg.Close()

注冊對象還支持上下文和分離處理對象周期:

reg.detach() #返回一個整數(shù),記錄當(dāng)前對象的生命周期,如果關(guān)閉注冊句柄對象,那么則為03.打開注冊表鍵#打開指定的鍵,返回一個處理對象
winreg.OpenKey(key, sub_key, reserved=0, access=winreg.KEY_READ)
winreg.OpenKeyEx(key, sub_key, reserved=0, access=winreg.KEY_READ)
#key:HKEY_ 常量
#sub_key:指定鍵的子鍵
#reserved:一個保留的證書,必須是零。默認值為零
#access:訪問權(quán)限4.創(chuàng)建新的注冊表鍵winreg.CreateKey(key,sub_key)
winreg.CreateKeyEx(key,sub_key,reserved=0,access=winreg.KEY_WRITE)
#key:HKEY_ 常量
#sub_key:指定鍵的子鍵
#reserved:一個保留的證書,必須是零。默認值為零
#access:訪問權(quán)限注冊表 命令

5.刪除注冊表中指定的鍵winreg.DeleteKey( key,sub_key) #不能刪除帶有子項的鍵
winreg.DeleteKeyEx(key,sub_key,reserved=0,access=winreg.KEY_WOW64_64KEY)#不能刪除帶有子項的鍵
winreg.DeleteValue(key, value)#從某個注冊鍵中刪除一個命名值項
#用法與上面相同,只是結(jié)果是刪除罷了注冊表 命令

可以看到”cnm“已經(jīng)被刪除了。如果鍵不存在,刪除會報錯。

6.枚舉注冊表鍵winreg.EnumKey(key,index) #枚舉打開的注冊表鍵的子鍵,并返回一個字符串
winreg.EnumValue(key,index)#枚舉打開的注冊表鍵值,并返回一個元組
#index:一個整數(shù),用于標(biāo)識所獲取鍵的索引注冊表 命令

7.刷新注冊表鍵winreg.FlushKey(key) #同步某個鍵的所有屬性寫入注冊表8.讀取注冊表winreg.LoadKey(key,sub_key,file_name)
#file_name:讀取注冊表的數(shù)據(jù)的文件名9.查找注冊表鍵winreg.QueryInfoKey(key) #返回一個3元素元組的鍵的信息
winreg.QueryValue(key,sub_key) #用一個字符串來檢索一個鍵的值
winreg.QueryValueEx(key,value_name) #檢索與開放權(quán)限的注冊表鍵相關(guān)聯(lián)的指定值的數(shù)據(jù)類型和名稱注冊表 命令

10.保存注冊表鍵winreg.SaveKey(key, file_name) #保存指定的鍵和所有指定文件的注冊表子項11.啟用禁用注冊表winreg.DisableReflectionKey(key) #禁用
winreg.EnableReflectionKey(key) #啟用12.反射狀態(tài)是否禁用winreg.QueryReflectionKey(key) #結(jié)果為True 則表示禁用13.在指定鍵上關(guān)聯(lián)值winreg.SetValue(key, sub_key, type, value) #添加鍵和值
winreg.SetValueEx(key,value_name,reserved,type,value)#將數(shù)據(jù)存儲在一個開放的注冊表鍵值字段
#value_name:該字符串名稱的注冊表子鍵
#type:值類型
#value:子鍵的鍵值注冊表 命令

注冊表 命令

可以看出它們的區(qū)別,而且前者值類型只能指定為“winreg.REG_SZ”,而后者什么類型都可以。

14.尋找應(yīng)用程序的位置并打開

前面我們介紹了"winreg"幾乎所有的方法,現(xiàn)在我們就來具體做一個應(yīng)用練練手,就拿我們的360安全衛(wèi)士為例,我們嘗試著通過注冊表先找到它的位置第二打開它。那么接下來小編開始表演了:

1).**360安全衛(wèi)士的注冊表項:1)).打開系統(tǒng)注冊表編輯器,第二進行搜索關(guān)鍵字:注冊表 命令

2)).**到注冊表路徑注冊表 命令

2).打開注冊表鍵

通過我們找到的子鍵第二對其進行查找**作,得到處理對象的句柄“reg”

reg=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"SOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionUninstall360安全衛(wèi)士")3).找到應(yīng)用的絕對路徑并打印

通過數(shù)值名稱找到數(shù)值數(shù)據(jù),

path=winreg.QueryValueEx(reg,'DisplayIcon')

這樣就找到了這個應(yīng)用的絕對路徑了,返回值是一個元祖,我們使用索引訪問:

path[0]注冊表 命令

可以看到我們已經(jīng)成功打印出了我們要找的應(yīng)用程序的絕對路徑了,接下來就可以愉快的打開它了。打開的方法多種多樣,什么“os”,“subprocess”,"ctypes","pywin32",一大堆的方法,不過小編還是覺得“os”最方便。

os.popen(path[0])注冊表 命令

最后別忘了關(guān)閉對象處理句柄哦。

#兩種方法都可以關(guān)閉
winreg.CloseKey(reg)
reg.Close()

四、小編綜合來說

利用”winreg“可以完成很多****作,你也可以通過注冊表設(shè)置系統(tǒng)開機啟動項以及其它**作,如果你想往黑客方面發(fā)展的話。

拓展知識:

原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請注明出處:http:///53121.html