[.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应用程序项目
[.NET] : VS2005 让应用程序以系统管理员的身分执行_第1张图片

 

2. 加入文本文件并取名为App.manifest
[.NET] : VS2005 让应用程序以系统管理员的身分执行_第2张图片
[.NET] : VS2005 让应用程序以系统管理员的身分执行_第3张图片

 

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>

[.NET] : VS2005 让应用程序以系统管理员的身分执行_第4张图片

 

4. 开启项目属性窗口的建置事件页面
[.NET] : VS2005 让应用程序以系统管理员的身分执行_第5张图片

 

5. 将下列内容写入建置后事件命令行
"$(DevEnvDir)..\..\SDK\v2.0\Bin\mt.exe" -manifest "$(ProjectDir)App.manifest" -outputresource:"$(TargetDir)$(TargetName).exe;#1"
[.NET] : VS2005 让应用程序以系统管理员的身分执行_第6张图片

 

6. 存档后编译
[.NET] : VS2005 让应用程序以系统管理员的身分执行_第7张图片

 

7. 执行后会显示用户帐户控制窗口
[.NET] : VS2005 让应用程序以系统管理员的身分执行_第8张图片

你可能感兴趣的:(.net)