由于win7之后的系统的权限策略,导致运行一些程序功能的时候需要"以管理员身份运行",然而对用户来说这是一个不好的体验,编写程序的时候如果不注意,也会导致程序错误,那么有没有方法自动调用管理员权限,而不用每次都要右键以管理员身份运行呢,答案当然是可以的。(注:此方法只是自动调用管理员权限运行,如果登录的用户没有管理员权限,是不会提升权限的)
方法步骤:
1. 新建一个文本文件,将如下内容粘贴到文本文件中。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="IsUserAdmin" type="win32"/> <description>Description of your application</description> <!-- Identify the application security requirements. --> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
2. 将此文本文件另存为一个与你程序名称(包括Exe后缀)相同manifest文件,如:abc.exe.manifest
3. 一个资源文件名为类型为“24”的资源文件:在同一目录新建一个文本文件,输入 1 24 abc.exe.manifest ,保存为任意名称的RC文件,如abc.rc
4. 如果安装了VC,用VC打开RC文件,之后另为RES文件即可。
如果未安装VC,打开CMD,进入VB安装目录的Wizard文件夹(如:cd C:\Program Files\Microsoft Visual Studio\VB98\Wizards 之后回车),再输入 “rc /r 刚才制作的RC文件路径”(如:rc /r c:\vb\win.rc),得到的资源文件,通过VB资源编辑器导入即可。(注:有些VB的精简版、绿色版、或各种阉割版可能没有这个RC.EXE文件,请自行寻找或安装完整版)
5. 到此已经实现了自动调用管理员权限的功能,编译之后测试一下吧。