如何在用户模式而不是管理员模式下告诉程序 运行

How to tell a program to run in user mode instead of administrator'

我构建了一个简单的 win32、32 位软件:

该程序在 xp 和 7 上运行良好,但在 Vista 上,该程序需要 运行 以管理员模式运行。

如何告诉 Vista 运行 这个程序 "normally"?我试图编辑属性,但没有什么奇怪的。我不知道什么要求程序以管理员身份启动。

在 Vista 上,此问题来自可执行文件名称:something_updater.exe.

有一些解决方案可以解决问题,请选择一个:

  1. 带有清单文件:

    在程序文件夹中添加一些 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>
    
  2. 在link时间:

    在构建可执行文件时向 linker 添加以下选项:

    /MANIFESTUAC:level=asInvoker /MANIFESTUAC:uiAccess=false
    
  3. 更改程序名称,某些名称不包含updatesetup