如何为 delphi 程序启用 UAC?

How to enable UAC for a delphi program?

我从 Project -> Options... -> Manifest 启用了 UAC

但是当 UAC 提示时

而我 select “否”,delphi .exe 根本不会 运行。它只会 运行 如果我 select “是”。

请问这件事有没有办法解决?不管我选择“是”还是“否”,delphi .exe 仍然会 运行,因为它假设有/没有管理员权限。

提升仅在进程启动时发生。进程一旦开始就无法动态提升自身 运行ning。

按照您的要求进行操作(“无论我选择“是”还是“否”,delphi .exe 仍将 运行 与 /没有管理员权限”),你需要把你的程序分成两个独立的部分。

让您的主进程 运行 未提升(执行级别 =“作为调用者”)执行任何不需要提升的任务。

将提升的任务移至:

  • 一个单独的 EXE(执行级别 =“最高可用”或“需要管理”),您可以在需要时运行。

  • 主 EXE 的一个单独部分,即由命令行参数调用,您可以 运行 在需要时使用 ShellExecute/Ex()"runas" 动词.

  • 您可以使用 COM Elevation Moniker.

    创建并在需要时调用的 COM 对象