作者: 乔克斯
查看: 4077|回复: 8
打印 上一主题 下一主题

[教程] 【Exe是否是管理员运行】C#判断当前程序是否通过管理员运行

[复制链接]
楼主
Misaya 发表于 2014-12-29 15:49:37 | 显示全部楼层
VISTA 和 Windows 7 都使用了UAC来控制程序访问,对于一些需要使用管理员身份运行的程序就得右键以管理员身份运行。
C# 编程中可以使程序自动使用管理员身份运行,也就是我们常常看到一些程序的图标上会冒出个盾牌。
方法:在源码的Properties目录中找到 app.manifest,
将其中level="asInvoker" 改成 level="requireAdministrator"就可以了,
如果没有app.manifest文件可以打开项目属性,找到安全性项,勾上启用 ClickOnce 安全设置,这时会生成app.manifest文件,
然后再把勾去掉,不要选上。
这样你重新编译,你的程序图标上就会出现个小盾牌了,就自动以管理员身份运行你的程序,无需右键打开。
沙发
Misaya 发表于 2014-12-29 15:50:40 | 显示全部楼层
[XML] 纯文本查看 复制代码
 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC 清单选项
            如果要更改 Windows 用户帐户控制级别,请用以下节点之一替换 
            requestedExecutionLevel 节点。

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            指定 requestedExecutionLevel 节点将会禁用文件和注册表虚拟化。
            如果要利用文件和注册表虚拟化实现向后 
            兼容性,则删除 requestedExecutionLevel 节点。
        -->
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
      <applicationRequestMinimum>
        <defaultAssemblyRequest permissionSetReference="Custom" />
        <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
      </applicationRequestMinimum>
    </security>
  </trustInfo>
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-5-18 11:13, Processed in 0.525544 second(s), 27 queries , Gzip On.

快速回复 返回顶部 返回列表