Windows7:提升一次通话的权限

时间:2016-01-30 15:16:28

标签: delphi windows-7 uac freepascal

我正在为任务栏通知区域开发一个应用程序(Windows XP和7 - 不要问!;))。它是从用户和管理员帐户启动的,通常不需要提升权限,我也不想在启动应用程序时使用UAC Dialog来打扰每个用户。

现在我想整合一个需要提升权限的调用(写入注册表,HKLM),我想知道为Windows 7 +实现这个(在这种情况下,在Delphi中)的最佳策略?

我已经看到程序使用提升权限和参数(Delphi: Prompt for UAC elevation when needed)调用自己 - 但有没有更好的方法呢?

1 个答案:

答案 0 :(得分:2)

您只能在创建流程时提升流程。这意味着您需要为此任务创建一个新流程。

当您需要执行提升的任务时,请使用ShellExecuteEx动词调用runas来启动新流程。指定要在流程命令行中执行的任务。

如果您可以在安装时执行此任务,那可能更可取。