如何为 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 对象
我从 Project -> Options... -> Manifest 启用了 UAC
但是当 UAC 提示时
而我 select “否”,delphi .exe 根本不会 运行。它只会 运行 如果我 select “是”。
请问这件事有没有办法解决?不管我选择“是”还是“否”,delphi .exe 仍然会 运行,因为它假设有/没有管理员权限。
提升仅在进程启动时发生。进程一旦开始就无法动态提升自身 运行ning。
按照您的要求进行操作(“无论我选择“是”还是“否”,delphi .exe 仍将 运行 与 /没有管理员权限”),你需要把你的程序分成两个独立的部分。
让您的主进程 运行 未提升(执行级别 =“作为调用者”)执行任何不需要提升的任务。
将提升的任务移至:
一个单独的 EXE(执行级别 =“最高可用”或“需要管理”),您可以在需要时运行。
主 EXE 的一个单独部分,即由命令行参数调用,您可以 运行 在需要时使用
ShellExecute/Ex()
和"runas"
动词.您可以使用 COM Elevation Moniker.
创建并在需要时调用的 COM 对象