为什么我不能在卸载期间使用ShellExecAsOriginalUser?

时间:2012-12-19 10:50:18

标签: installation inno-setup uac

我有一个需要重启资源管理器的Inno Setup安装程序(为了安装shell扩展)。在安装过程中,我可以使用ShellExecAsOriginalUser启动explorer.exe,以便它不以管理员权限启动;这在Windows 8上很重要,因为运行具有管理员权限的资源管理器会阻止Metro应用程序运行。

麻烦的是,在卸载过程中无法调用此函数,如文档中所述(无论如何我试图这样做,但当然它失败了)。我不明白为什么不可能。任何线索?有解决方法吗?

1 个答案:

答案 0 :(得分:1)

在卸载期间无法调用它,因为“程序和功能”控制面板始终以提升的权限启动卸载程序(无论如何,在运行每台机器的卸载程序时);因此,“原始用户”仍然是管理员用户。

在这种情况下,可能正确的做法是使用最新版本的Inno - 这包括Restart Manager functionality,它应该自动将资源管理器排序,而无需您做任何事情。