相关疑难解决方法(0)

仅在需要时使Inno Setup安装程序请求权限提升

如果需要特权提升,Inno Setup安装程序具有可用于控制安装程序启动时的PrivilegesRequired指令.我希望我的安装程序甚至可以为非管理员用户工作(没有问题将我的应用程序安装到用户文件夹,而不是Program Files).所以我设置PrivilegesRequirednone(未记录的值).这使得UAC仅为管理员用户提示弹出,因此他们甚至可以安装到Program Files.没有UAC提示非管理员用户,所以即使他们可以安装应用程序(到用户文件夹).

这有一些缺点:

  • 有些人在他们的计算机上使用不同的管理员和非管理员帐户,通常使用非管理员帐户.通常,在使用非管理员帐户启动安装时,当他们收到UAC提示时,他们会输入管理员帐户的凭据以继续.但这不适用于我的安装程序,因为没有UAC提示.
  • (过于可疑)拥有管理员帐户且想要安装到用户文件夹的人无法在没有(不需要)管理员权限的情况下启动我的安装程序.

是否有一些方法可以在需要时(当用户选择仅由管理员帐户写入的安装文件夹时)使Inno Setup请求权限提升?

我假设在Inno Setup中没有这个设置.但可能有一个程序化的解决方案(Inno Setup Pascal脚本)或某种插件/ DLL.


请注意,即将推出的Inno Setup 6具有对非管理安装模式的内置支持.

privileges uac inno-setup pascalscript elevated-privileges

24
推荐指数
2
解决办法
2万
查看次数

哪些原因可能导致ShellExecute失败?

我有一个VB6应用程序,使用以下命令打开文件及其关联的应用程序

ShellExecute(0, "open", filename, params, vbNullString, vbNormalFocus)
Run Code Online (Sandbox Code Playgroud)

这非常有效.

现在我有一个客户(使用Adobe Reader运行XP)无法使用上述命令打开任何PDF文件.但是从Windows资源管理器中双击它时,同一个文件正在打开而没有任何问题.我还测试了我的机器上的文件名/路径组合,以排除这些问题.

我正在寻找任何有关我可以检查以确保ShellExecute工作的提示.或者是什么导致ShellExecute以这种方式失败?

vb6 registry winapi file shellexecute

13
推荐指数
3
解决办法
2万
查看次数