如何在用户模式而不是管理员模式下告诉程序 运行
How to tell a program to run in user mode instead of administrator'
我构建了一个简单的 win32、32 位软件:
- 真的很简单:一个windows,两个按钮,
- 不需要任何外部奇特的库(理想是在任何Windows计算机下运行)。
该程序在 xp 和 7 上运行良好,但在 Vista 上,该程序需要 运行 以管理员模式运行。
如何告诉 Vista 运行 这个程序 "normally"?我试图编辑属性,但没有什么奇怪的。我不知道什么要求程序以管理员身份启动。
在 Vista 上,此问题来自可执行文件名称:something_updater.exe
.
有一些解决方案可以解决问题,请选择一个:
带有清单文件:
在程序文件夹中添加一些 something_updater.exe.manifest
文件,其中包含:
<?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"
name="something_updater.exe"
type="win32"
/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
在link时间:
在构建可执行文件时向 linker 添加以下选项:
/MANIFESTUAC:level=asInvoker /MANIFESTUAC:uiAccess=false
更改程序名称,某些名称不包含update
或setup
。
我构建了一个简单的 win32、32 位软件:
- 真的很简单:一个windows,两个按钮,
- 不需要任何外部奇特的库(理想是在任何Windows计算机下运行)。
该程序在 xp 和 7 上运行良好,但在 Vista 上,该程序需要 运行 以管理员模式运行。
如何告诉 Vista 运行 这个程序 "normally"?我试图编辑属性,但没有什么奇怪的。我不知道什么要求程序以管理员身份启动。
在 Vista 上,此问题来自可执行文件名称:something_updater.exe
.
有一些解决方案可以解决问题,请选择一个:
带有清单文件:
在程序文件夹中添加一些
something_updater.exe.manifest
文件,其中包含:<?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" name="something_updater.exe" type="win32" /> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
在link时间:
在构建可执行文件时向 linker 添加以下选项:
/MANIFESTUAC:level=asInvoker /MANIFESTUAC:uiAccess=false
更改程序名称,某些名称不包含
update
或setup
。