vs下给生成的程序(exe)加入默认的申请管理员权限

在vs下编程时,经常会用到一些特殊的权限,尤其是管理员权限,下面是在win7下笔者亲测通过的。

下面要分两种情况:

第一种情况就是在vs2003或者以下的编译器中运行

1、准备一个manifest文件,命名如下:XPStyle.manifest

文件的内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
  version="5.1.0.9"
  processorArchitecture="X86"
  name="XPStyle.manifest"
  type="win32"
/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
    </requestedPrivileges>
  </security>
</trustInfo>
</assembly>

asInvoker : 如果选这个,应用程序就是以当前的权限运行。

highestAvailable: 这个是以当前用户可以获得的最高权限运行。

requireAdministrator: 这个是仅以系统管理员权限运行。

2、然后保存,放到和资源文件(.rc)放到一个目录下

3、用文件编辑器打开上述资源文件,在最后一行加上

1 24 "XPStyle.manifest"

1是资源id,24是资源的名称,必须是1和24

4、然后保存重新编译程序就好了。

这里有个注意事项要说明:就是这样生成的exe文件不能调试运行,只能双击运行,要想用管理员身份的调试,需要让编译器以管理员身份运行同时把资源文件中的添加的那行注释掉就好了。

如果直接点调试运行会造成关不掉你那个程序,用任务管理器也不能关掉。

第二种情况是在vs2005以上的编译器中运行

打开vs2005、vs2008等工程,在【解决方案资源管理器】里查看是否有app.manifest这个文件,如果没有的话,通过以下方法创建:

方法1:

1、在【解决方案资源管理器】右键工程名称选择属性;
2、在弹出的该对话框中,选择【安全性】选项卡。
3、勾选【启用ClickOnce安全设置】,并选中【这是完全可信的应用程序】。
4、保存工程,这时候app.manifest就自动创建了。

打开app.manifest把默认的配置修改一下,通过代码的注释,可以知道需要修改的节点是【requestedExecutionLevel】

asInvoker : 如果选这个,应用程序就是以当前的权限运行。

highestAvailable: 这个是以当前用户可以获得的最高权限运行。

requireAdministrator: 这个是仅以系统管理员权限运行。

找到<requestedExecutionLevel  level="asInvoker" uiAccess="false" />
把其改为<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

这时候修改完成,按下F5进行调试,通常会收到如下的错误提示:【ClickOnce 不支持请求执行级别“requireAdministrator”】。

事情好像发生了相互矛盾,上面开启【ClickOnce】便自动创建了app.manifest,现在修改了app.manifest却提示:ClickOnce 不支持请求执行级别“requireAdministrator”。

解决方法是:只要把【启用ClickOnce安全设置】不勾选就可以了。

如果操作步骤正确,按下F5进行调试,会弹出如下的提示框,VS具有提升的权限。

这样我们编写的应用程序在运行后,就会首先弹出这样一个提示框 , 点【Yes】后,程序才可以继续运行,并且获得系统管理员的权限。

方法2:

为工程项目添加一个类,应用程序清单文件(app.manifest)。

然后可以看到app.manifest的位置不在Properties属性里了,变成在引用里了,其节点内容也少了一些。

剩下的方法和上面相同。这样跳过了【启用ClickOnce安全设置】这步,直接执行,不会出错了。

时间: 2024-10-09 19:57:10

vs下给生成的程序(exe)加入默认的申请管理员权限的相关文章

您没有权限生成需要的系统配置修改。请使用管理员权限

今天安装俊冷精简破解Camtasia,出现出现"您没有权限生成需要的系统配置修改.请使用管理员权限重新运行本安装程序." 真晕,明明是管理员的账户啊!关了杀毒软件和防火墙,再安装,还是不行. 上网上搜到这个: 1.在安装这个程序的时候,使用的是Administrators组的成员用户. 2.已经将防火墙(系统的和三方的)关闭. 3.Application Management服务已经打开. 4.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows

WinForm 程序加管理员权限

在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无法对系统目录.系统注册表等可能影响系统正常运行的设置进行写操作.这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,如何实现这样的功能呢?下面演示 C# 程序如何实现提示用户以管理员权限运行. 本例以WinForm程

C#程序以管理员权限运行

原文:C#程序以管理员权限运行 C#程序以管理员权限运行 在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无法对系统目录.系统注册表等可能影响系统正常运行的设置进行写操作.这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,如何实现这样的功能呢? 下面演示 C# 程

【转】 C#程序以管理员权限运行

C#程序以管理员权限运行在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无法对系统目录.系统注册表等可能影响系统正常运行的设置进行写操作.这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,如何实现这样的功能呢? 下面演示 C# 程序如何实现提示用户以管理员权限运行

C#程序以管理员权限运行【我采用了第二种,比较好用】

在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无法对系统目录.系统注册表等可能影响系统正常运行的设置进行写操作.这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,如何实现这样的功能呢? 下面演示 C# 程序如何实现提示用户以管理员权限运行. 本例以WinForm

win7下cmake编译opencv2.3.1生成opencv—createsamples.exe和opencv_haartrainingd.exe

第一步:下载安装cmake,之后进行默认安装就行,这步略过. 第二步:配置cmake ,使cmake找到opencv进行编译安装 第三步:之后找到安装后的文件夹,cmake通过cmakelist生成了很多工程,例如opencv_createsamples.vcproj,opencv_haartraining.vcproj.找到这两个工程打开后,直接进行编译,之后在opencv/bin/目录下会生成两个可执行文件,opencv-createsamples.exe和opencv_haartraini

让 windows 下的命令行程序 cmd.exe 用起来更顺手

在 Windows 下使用 Larave 框架做开发,从 Composer 到 artisan 总是避免不了和 cmd.exe 打交道,系统默认的命令行界面却是不怎么好看,且每行显示的字符数是做了限制.伟大的 cmd.exe ,就是这么任性! 一些情况下,我们需要让每行显示更多的字符,从而避免频繁的换行导致界面出现出现一堆乱糟糟的字符串.当然,你或许也已经看烦了黑底白字的 cmd.exe 界面. 那么,如何改善这种现状呢?其实很简单, cmd.exe 具备一些基本的设置功能,只是不常用而已.如下

Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 (需要在运行时生成core dump文件,QMAKE_CC += -g)

记录一下 Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 需要在运行时生成core dump文件 首先在pro结尾里加入 QMAKE_CC += -g QMAKE_CXX += -g QMAKE_LINK += -g 在终端输入 ulimit -c 显示为 0 然后输入 ulimit -c unlimited 继续在终端运行编写的程序 出错后,会在当前目录生成 core 文件 然后在终端执行 “gdb 你的程序名 core” 然后输入 bt 对该错误进行跟踪调试 (gdb)

MAC下如何运行Windows的EXE程序软件?

MAC下如何运行Windows的EXE程序呢?方法还是蛮多的,比如使用虚拟机Parallels Desktop 11 或 VMware Fusion 8,这里主要讲解一种简单些的方法,使用crossover来运行exe程序. 工具/原料 CrossOver_14.0.3 exe程序一个 MAC OS X 方法/步骤 1 首先下载CrossOver,百度即可找到安装包.官网亦可下载. 2 安装并打开crossover,点击左下角加号,新建一个容器(相当于一个虚拟小型系统). 3 新容器的名称我们命