C 应用程序中管理员权限的运行时提升
在运行时向操作系统请求管理员权限的能力对于某些人来说是一项理想的功能应用程序。在 Windows 中,可以通过各种机制实现此功能。
编译时提升
如问题中所述,可以在编译期间向应用程序授予管理员权限通过将应用程序的清单设置为“requireAdministrator”。但是,如果在运行时出现提升的要求,则需要其他方法。
运行时提升
要在运行时提升现有应用程序的权限,存在多种选项:
外部清单
与编译时提升类似,可以创建外部清单并将其与应用程序的可执行文件关联。此清单可以将“requestedExecutionLevel”指定为“requireAdministrator”。
RunAs Verb
通过在 ShellExecute 函数中使用“runas”动词,可以以提升的权限启动进程。此选项允许在执行进程之前提示用户输入管理员凭据。
专门针对当前实例
如果目标是提升当前实例的权限在不丢失内存中保留的数据的情况下,可以使用 Windows“CreateSymbolicLinkW”函数创建指向管理员帐户可执行文件的符号链接。此技术涉及创建与正在运行的应用程序同名的符号链接,并将其指向可执行文件的提升版本。然后可以执行提升的版本,继承原始应用程序的内存和资源。
以上是如何在运行时提升 C 应用程序的管理员权限?的详细内容。更多信息请关注PHP中文网其他相关文章!