[.NET] : VS2005 让应用程序以系统管理员的身分执行

前言 :

应用程序在Vista或是Win7上执行时,有时会有权限不足的问题。
简单的解法是请用户在应用程序图标上右键单击,然后选择以系统管理员身分执行。
但这个动作常常会被使用者忘记。

这个问题在VS2008或是VS2010上已经有了解决方案 :
(请参考)
http://social.msdn.microsoft.com/Forums/zh-TW/1007/thread/ce70e22d-45f7-4903-b8f4-76a159d3002d
http://www.dotblogs.com.tw/jjnnykimo/archive/2009/05/08/8346.aspx
http://www.dotblogs.com.tw/dotnetfactory/archive/2008/12/01/6152.aspx

这篇文章是描述在VS2005的开发环境上,如何实作上述的解决方案。

实作 :

1. 建立Windows应用程序项目
image

2. 加入文本文件并取名为App.manifest
image
image

3. 将下列内容写入App.manifest

<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">
  <assemblyidentity name="MyApplication.app" version="1.0.0.0"></assemblyidentity>
  <trustinfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedprivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedexecutionlevel level="requireAdministrator" uiaccess="false"></requestedexecutionlevel>
      </requestedprivileges>
    </security>
  </trustinfo>
</asmv1:assembly>

image

4. 开启项目属性窗口的建置事件页面
image

5. 将下列内容写入建置后事件命令行
"$(DevEnvDir)..\..\SDK\v2.0\Bin\mt.exe" -manifest "$(ProjectDir)App.manifest" -outputresource:"$(TargetDir)$(TargetName).exe;#1"
image

6. 存档后编译
image

7. 执行后会显示用户帐户控制窗口
image

原文地址:https://www.cnblogs.com/clark159/p/2205060.html