最近做了C#软件,支持开机启动,但是发现在win7里面即使我的程序给它添加了权限小盾牌,正常运行软件是会弹出一个小筐提示获取管理员权限,但是再刚开机的时候是无法申请到管理员权限的,所以开机启动的程序未申请到管理员权限就未启动。
首先我们看正常情况下简单获取管理员权限的方法——app.manifest(
该方法的程序不能注册开机启动):
为项目添加文件app.manifest,简单添加方法是
右键项目属性在安全性选项里面有个“启动clickonce安全设置”复选框,勾选上后项目会自动生成app.manifest文件.
该文件如下:
1 <?xml version="1.0" encoding="utf-8"?>
2 <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3 <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
4 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
5 <security>
6 <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
7 <!-- UAC 清单选项
8 如果希望更改 Windows 用户帐户控制级别,请用以下节点之一替换
9 requestedExecutionLevel 节点。
10
11 <requestedExecutionLevel level="asInvoker" uiAccess="false" />
12 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
13 <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
14