技术开发 频道

详解Visual Studio对应用程序的UAC设置

  【IT168 技术文档】通过该小结的动手实验,我们能够了解到通过Manifest进行UAC权限设置,学会在Visual Studio中进行编写Manifest清单文件。

  注意:在Demo中演示的是VB项目,生成Manifest的方式和VC#略有不同,但是Manifest文件的格式和用途是一样的,本实验基于C#

  1.Visual Studio 2008中进行对应用程序的UAC设置

  (1) 打开Begin项目(C:\Course\HOL\使用Manifest\Begin)

  (2) 按F5执行,没有任何问题,如右图:

  (3) 关闭程序,到目录C:\Course\HOL\使用Manifest\End\WindowsFormsApplication1\bin\Debug,我们看到WindowsFormsApplication1.exe的图标上没有盾牌,刚刚执行时,也没有提示权限提升。

  (4) 在项目上点击右键,选择Add->New Item…

  (5) 找到项目“Application Manifest File”,名字为:app.manifest,点击”Add”按钮。

  (6) 将下面这段代码:

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

  替换成

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

  (7) 在解决方案上点击右键,选择“Rebuild Solution”

  (8) 重新回到目录:C:\Course\HOL\使用Manifest\End\WindowsFormsApplication1\bin\Debug,我们会看到WindowsFormsApplication1和刚刚的显著不同,就是程序图标上多了一个盾牌。

  (9) 双击WindowsFormsApplication1,会看到UAC提示

  (10) 点击按钮“是”,程序正常执行。

  2.为应用程序添加使用Shield图标

  (1) 打开Begin项目(C:\Course\HOL\使用Shield图标\Begin

  (2) 按F5执行,看到执行窗体,这个窗体上有一个按钮,并且按钮上没有盾牌小图标。

  (3) 关闭程序,在Form1.cs上点击右键,选择View Code

  (4) 在From1.cs中,添加:

  using System.Runtime.InteropServices;

  
using System.Diagnostics;

 

  (5) 在Form1函数声明后,添加如下代码:

  (6) 双击Form1.cs,回到设计视图,然后双击Form1窗体,生成Form1_Load事件,填写事件代码如右边所示

  (7) 在Shield Button上双击,生成button1_Click事件,填写代码如右边所示,请注意,在此代码中我们调用的是动手实验【使用Manifest】的End中编译好的exe,请首先确认此exe是存在的。

  (8) 按F5,运行程序。

  (9) 当点击按钮时,会看到UAC提示,请注意,这个提示是由于本身调用的程序需要权限提升。我们的代码仅仅是给button增加了盾牌图表。

  (10) 点击按钮“是”,实验完成。

0
相关文章