我正在为任务栏通知区域开发一个应用程序(Windows XP和7 - 不要问!;))。它是从用户和管理员帐户启动的,通常不需要提升权限,我也不想在启动应用程序时使用UAC Dialog来打扰每个用户。
现在我想整合一个需要提升权限的调用(写入注册表,HKLM),我想知道为Windows 7 +实现这个(在这种情况下,在Delphi中)的最佳策略?
我已经看到程序使用提升权限和参数(Delphi: Prompt for UAC elevation when needed)调用自己 - 但有没有更好的方法呢?
答案 0 :(得分:2)
您只能在创建流程时提升流程。这意味着您需要为此任务创建一个新流程。
当您需要执行提升的任务时,请使用ShellExecuteEx
动词调用runas
来启动新流程。指定要在流程命令行中执行的任务。
如果您可以在安装时执行此任务,那可能更可取。