添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
首页 > 脚本专栏 > python > Python exe添加管理员运行属性

Python给exe添加以管理员运行的属性方法详解

作者:Python成长路

这篇文章主要为大家介绍了Python给exe添加以管理员运行的属性方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

有些应用每次启动都需要用管理员权限运行,比如Python注入dll时,编辑器或cmd就需要以管理员权限运行,不然注入就会失败。

这篇文章用编程怎么修改配置实现打开某个软件都是使用管理员运行,就不用每次都右键点击 以管理员身份运行此程序 。主要是给小白配置,防止他忘了以管理员权限运行,又跑过来问我为啥Hook失败了

非编程方式

如果是自己想修改的话:右键软件或桌面快捷方式,兼容性->然后勾选 以管理身份运行此程序

有代码的软件

如果你需要运行的软件是自己写的,想在运行时申请管理员权限,可以在清单文件里增加一行:

<requestedExecutionLevel level='requireAdministrator' uiAccess='true' />

在visual studio中,可以右键项目属性,链接器->清单文件,UAC执行级别改成 requireAdministrator

软件本身没有申请管理员权限,而你又想让他以管理员权限运行。那就得知道非编程方式勾选的那个配置实际保存在哪里,你可以直接修改它保存的位置也能达到一样的效果

经过搜索发现,这个配置是保存在注册表中。

当前用户对应的注册表路径

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

所有用户统一的配置路径

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

当你在右键勾选这个选项时,当前用户的注册表路径下就会多出一个键来,键名是软件的绝对路径,值则是 ~ RUNASADMIN

如果你删除掉这个键,则在右键看的时候,选项是没有被勾选上的

另外,其他几个选项也是在这个路径下,分别对应不同的值,这里我就不演示了。

这里以Python为例修改注册表,让Python每次都以管理员权限启动,这种其实属于危险行为,因为Python也可以在你电脑上做任何事

import ctypes 
import sys
from winreg import *
def add_runas():
    exe_path = sys.executable
    # 判断当前运行的Python是否具有管理员权限,没有则申请
    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"
        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()

搜索的时候还看到可以通过修改快捷方式来达到这样的效果,不过我测试并不行,可能在最新的系统这个属于bug被修复了。如果有人测试成功的话,可以私聊我下原因

以上就是Python给exe添加以管理员运行的属性的详细内容,更多关于Python给exe添加以管理员运行的属性的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
  • python全局变量与局部变量的区别及使用
    python全局变量与局部变量的区别及使用
    2023-12-12
  • Python httpx库入门指南(最新推荐)
    Python httpx库入门指南(最新推荐)
    2023-12-12
  • PyCharm中New Directory 和 New Python Package的区别解析
    PyCharm中New Directory 和 New Python
    2023-12-12
  • python实现阶乘的三种方法
    python实现阶乘的三种方法
    2023-12-12
  • 将Python项目打包成exe并附带下载功能的操作流程
    将Python项目打包成exe并附带下载功能的操作流程
    2023-12-12
  • Python实用工具之实现PDF转DOCX文档
    Python实用工具之实现PDF转DOCX文档
    2023-12-12
  • python算法测试结果自动保存到excel表格的实现步骤
    python算法测试结果自动保存到excel表格的实现步骤
    2023-12-12
  • python全局变量与局部变量的区别及使用
    python全局变量与局部变量的区别及使用
    2023-12-12
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2024 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号