Python給exe添加以管理員運行的屬性方法詳解
需求
有些應(yīng)用每次啟動都需要用管理員權(quán)限運行,比如Python注入dll時,編輯器或cmd就需要以管理員權(quán)限運行,不然注入就會失敗。
這篇文章用編程怎么修改配置實現(xiàn)打開某個軟件都是使用管理員運行,就不用每次都右鍵點擊以管理員身份運行此程序
。主要是給小白配置,防止他忘了以管理員權(quán)限運行,又跑過來問我為啥Hook失敗了
非編程方式
如果是自己想修改的話:右鍵軟件或桌面快捷方式,兼容性->然后勾選以管理身份運行此程序
編程方式
有代碼的軟件
如果你需要運行的軟件是自己寫的,想在運行時申請管理員權(quán)限,可以在清單文件里增加一行:
<requestedExecutionLevel level='requireAdministrator' uiAccess='true' />
在visual studio中,可以右鍵項目屬性,鏈接器->清單文件,UAC執(zhí)行級別改成requireAdministrator
其他軟件
軟件本身沒有申請管理員權(quán)限,而你又想讓他以管理員權(quán)限運行。那就得知道非編程方式勾選的那個配置實際保存在哪里,你可以直接修改它保存的位置也能達到一樣的效果
經(jīng)過搜索發(fā)現(xiàn),這個配置是保存在注冊表中。
當(dāng)前用戶對應(yīng)的注冊表路徑
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
所有用戶統(tǒng)一的配置路徑
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
當(dāng)你在右鍵勾選這個選項時,當(dāng)前用戶的注冊表路徑下就會多出一個鍵來,鍵名是軟件的絕對路徑,值則是~ RUNASADMIN
如果你刪除掉這個鍵,則在右鍵看的時候,選項是沒有被勾選上的
另外,其他幾個選項也是在這個路徑下,分別對應(yīng)不同的值,這里我就不演示了。
這里以Python為例修改注冊表,讓Python每次都以管理員權(quán)限啟動,這種其實屬于危險行為,因為Python也可以在你電腦上做任何事
import ctypes import sys from winreg import * def add_runas(): exe_path = sys.executable # 判斷當(dāng)前運行的Python是否具有管理員權(quán)限,沒有則申請 if not ctypes.windll.shell32.IsUserAnAdmin(): ctypes.windll.shell32.ShellExecuteW(None, "runas", exe_path, __file__, None, 1) reg_path = r"Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" reg_key = OpenKey(HKEY_CURRENT_USER, reg_path, access=KEY_SET_VALUE | KEY_READ) runas_value = "~ RUNASADMIN" try: value = QueryValueEx(reg_key, exe_path) except FileNotFoundError: SetValueEx(reg_key, exe_path, 0, REG_SZ, runas_value) else: if runas_value[2:] not in value[0]: SetValueEx(reg_key, exe_path, 0, REG_SZ, value[0] + ' ' + runas_value[2:]) if __name__ == "__main__": add_runas()
其他方式
搜索的時候還看到可以通過修改快捷方式來達到這樣的效果,不過我測試并不行,可能在最新的系統(tǒng)這個屬于bug被修復(fù)了。如果有人測試成功的話,可以私聊我下原因
以上就是Python給exe添加以管理員運行的屬性的詳細(xì)內(nèi)容,更多關(guān)于Python給exe添加以管理員運行的屬性的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python面向?qū)ο蟪绦蛟O(shè)計之繼承、多態(tài)原理與用法詳解
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計之繼承、多態(tài),結(jié)合實例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計中繼承、多態(tài)的相關(guān)概念、原理、用法及操作注意事項,需要的朋友可以參考下2020-03-03python實現(xiàn)隨機調(diào)用一個瀏覽器打開網(wǎng)頁
下面小編就為大家分享一篇python實現(xiàn)隨機調(diào)用一個瀏覽器打開網(wǎng)頁,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04