欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
厲害了,Python也能操作注冊表

多情只有春庭月,猶為離人照落花。

前言

大家好,我是IT共享者,人稱(chēng)皮皮。

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

一、注冊表初次見(jiàn)面

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

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

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

在Python中就有這么一個(gè)神奇的模塊,它可以用來(lái)操作注冊表。它就是-----"winreg",一個(gè)Python自帶的操作注冊表的模塊。

三、導入

import winreg

1.常量

”winreg“總有很多有用的方法,基本上就是操作注冊表中的鍵值,我們挑幾個(gè)重要的來(lái)說(shuō)說(shuō)。首先我們來(lái)了解下”winreg“中的各個(gè)常量:

1).HKEY_ 常量

winreg.HKEY_CLASSES_ROOT     #存儲應用和shell的信息winreg.HKEY_CURRENT_USER     #當前用戶(hù)自定義的信息winreg.HKEY_LOCAL_MACHINE    #計算機系統所有的信息winreg.HKEY_USERS            #所有用戶(hù)信息winreg.HKEY_PERFORMANCE_DATA #性能數據winreg.HKEY_CURRENT_CONFIG   #本地計算機系統的硬件配置文件winreg.HKEY_DYN_DATA         #windows98后的版本無(wú)法使用

2).訪(fǎng)問(wèn)權限

winreg.KEY_ALL_ACCESS           #所有權限winreg.KEY_WRITE                #可寫(xiě)winreg.KEY_READ                 #可讀winreg.KEY_EXECUTE              #可執行相當于KEY_READwinreg.KEY_QUERY_VALUE          #查詢(xún)注冊表鍵值winreg.KEY_SET_VALUE            #創(chuàng  )建、刪除或設置一組注冊表值winreg.KEY_CREATE_SUB_KEY       #創(chuàng  )建一個(gè)注冊表子項的注冊表鍵winreg.KEY_ENUMERATE_SUB_KEYS   #枚舉注冊表子項所需的注冊表鍵winreg.KEY_NOTIFY               #修改注冊表鍵時(shí)的提示winreg.KEY_CREATE_LINK          #創(chuàng  )建一個(gè)鏈接,預留給系統用

3).64位的具體應用

winreg.KEY_WOW64_64KEY  #在64位Windows應用程序應該運行在64位注冊表視圖winreg.KEY_WOW64_32KEY  #在64位Windows應用程序應該運行在32位注冊表視圖

4).值類(lèi)型

winreg.REG_BINARY                  #任何形式的二進(jìn)制數據winreg.REG_DWORD                   #32位的數winreg.REG_DWORD_LITTLE_ENDIAN     #32位的數字在低位優(yōu)先的格式,相當于REG_DWORDwinreg.REG_DWORD_BIG_ENDIAN        #32位的數字在高位優(yōu)先的格式winreg.REG_EXPAND_SZ               #以null結尾的字符串包含環(huán)境變量的引用(% %)winreg.REG_LINK                    #Unicode符號鏈接winreg.REG_MULTI_SZ                #一個(gè)以null結尾的字符串序列,由兩個(gè)空字符結束winreg.REG_NONE                    #沒(méi)有定義的值類(lèi)型winreg.REG_QWORD                   #64位的數winreg.REG_QWORD_LITTLE_ENDIAN         #在低位優(yōu)先一個(gè)64位的數字格式,相當于REG_QWORDwinreg.REG_RESOURCE_LIST               #設備驅動(dòng)器資源列表winreg.REG_FULL_RESOURCE_DESCRIPTOR    #硬件設置winreg.REG_RESOURCE_REQUIREMENTS_LIST  #硬件資源列表winreg.REG_SZ                          #一個(gè)以null結尾的字符串


四、注冊表相關(guān)操作

1.連接遠程計算機注冊表

reg=winreg.ConnectRegistry('\\計算機名',winreg.HKEY_LOCAL_MACHINE)#返回值是所開(kāi)打鍵的句柄#第一個(gè)參數是指遠程計算機名,第二個(gè)參數是指注冊表中的鍵,如HKEY_LOCAL_MACHINE,它是winreg中的常量。

不過(guò)我們在這里要注意的是,如果遠程注冊表沒(méi)有系統管理員權限,是無(wú)法正常訪(fǎng)問(wèn)注冊表的。所以我們先要判斷下它的訪(fǎng)問(wèn)權限。這里就要用到我們之前講的"ctypes"模塊中的判斷用戶(hù)是否是管理員用戶(hù)的方法了。

import ctypesimport sysdef admin():    aa=ctypes.windll.shell32.IsUserAnAdmin()    return aa
if admin()==1: #有管理員權限可打開(kāi)遠程注冊表 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)閉了,也很簡(jiǎn)單,只要拿到打開(kāi)注冊表的句柄,就可以關(guān)閉了。

winreg.CloseKey(reg)

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

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

reg.Close()

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

reg.detach() #返回一個(gè)整數,記錄當前對象的生命周期,如果關(guān)閉注冊句柄對象,那么則為0

3.打開(kāi)注冊表鍵

#打開(kāi)指定的鍵,返回一個(gè)處理對象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:一個(gè)保留的證書(shū),必須是零。默認值為零#access:訪(fǎng)問(wè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:一個(gè)保留的證書(shū),必須是零。默認值為零#access:訪(fǎng)問(wèn)權限

5.刪除注冊表中指定的鍵

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

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

6.枚舉注冊表鍵

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

7.刷新注冊表鍵

winreg.FlushKey(key)  #同步某個(gè)鍵的所有屬性寫(xiě)入注冊表

8.讀取注冊表

winreg.LoadKey(key,sub_key,file_name)#file_name:讀取注冊表的數據的文件名

9.查找注冊表鍵

winreg.QueryInfoKey(key) #返回一個(gè)3元素元組的鍵的信息winreg.QueryValue(key,sub_key) #用一個(gè)字符串來(lái)檢索一個(gè)鍵的值winreg.QueryValueEx(key,value_name) #檢索與開(kāi)放權限的注冊表鍵相關(guān)聯(lián)的指定值的數據類(lèi)型和名稱(chēng)

10.保存注冊表鍵

winreg.SaveKey(key, file_name) #保存指定的鍵和所有指定文件的注冊表子項

11.啟用禁用注冊表

winreg.DisableReflectionKey(key) #禁用winreg.EnableReflectionKey(key)  #啟用

12.反射狀態(tài)是否禁用

winreg.QueryReflectionKey(key) #結果為T(mén)rue 則表示禁用

13.在指定鍵上關(guān)聯(lián)值

winreg.SetValue(key, sub_key, type, value) #添加鍵和值winreg.SetValueEx(key,value_name,reserved,type,value)#將數據存儲在一個(gè)開(kāi)放的注冊表鍵值字段#value_name:該字符串名稱(chēng)的注冊表子鍵#type:值類(lèi)型#value:子鍵的鍵值

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

14.尋找應用程序的位置并打開(kāi)

前面我們介紹了"winreg"幾乎所有的方法,現在我們就來(lái)具體做一個(gè)應用練練手,就拿我們的360安全衛士為例,我們嘗試著(zhù)通過(guò)注冊表先找到它的位置然后打開(kāi)它。那么接下來(lái)小編開(kāi)始表演了:

1).定位360安全衛士的注冊表項:

1)).打開(kāi)系統注冊表編輯器,然后進(jìn)行搜索關(guān)鍵字:

2)).定位到注冊表路徑

2).打開(kāi)注冊表鍵

通過(guò)我們找到的子鍵然后對其進(jìn)行查找操作,得到處理對象的句柄“reg”

reg=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\360安全衛士")

3).找到應用的絕對路徑并打印

通過(guò)數值名稱(chēng)找到數值數據,

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

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

path[0]

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

os.popen(path[0])

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

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


四、總結

利用”winreg“可以完成很多騷操作,你也可以通過(guò)注冊表設置系統開(kāi)機啟動(dòng)項以及其它操作,如果你想往黑客方面發(fā)展的話(huà)。

看完本文有收獲?請轉發(fā)分享給更多的人

IT共享之家

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
「Python黑帽」獲取注冊表、U盤(pán)歷史痕跡和回收站文件
Python 操作注冊表
VB的API編程精粹
用python修改注冊表干掉360safe
Inno Setup 注冊表啟動(dòng)項 修改注冊表
vc 注冊表編程
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久