我该如何使C++命令行应用程序以管理员身份运行?
我正在创建的程序需要管理员权限,因此让用户获得以管理员身份运行的提示会很好。我该怎么做呢?
注意:我不使用Visual Studio,我使用Code::Blocks 10.05;
-Stian
您也可以使用shell:
右键单击项目 => 配置属性 => 链接器 => 清单文件 => highestAvailable (/level='highestAvailable')
<?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="MyApplication"
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>
MyApplication.exe.manifest
(用您的可执行文件名称替换MyApplication
),它会被UAC自动加载。您还可以在可执行文件的资源部分中嵌入适当命名的清单。有关更多详细信息,请参见:http://msdn.microsoft.com/en-us/library/bb756929.aspx。requireAdministrator
添加到您的应用程序清单中。mt
嵌入清单,或者只需在相同目录下放置与 .exe
文件同名的 .manifest
文件,例如 foo.exe
和 foo.exe.manifest
。 - ephemientmt
是Windows SDK的一部分。即使它是VS的一部分,有什么问题呢?VS是免费的,你可以毫无问题地安装它。 - Cat Plus Pluswindres
来实现。不过我不知道Code::Blocks背后的情况。 - ephemientname.exe
变成name.exe.manifest
。 - Polynomial