如何在Windows 10上从Inno Setup安装程序打开PDF?我试图显示帮助文档,我使用的技术(based on comments on this question)和适用于Windows 7的技术在Windows 10上运行时没有任何结果(文件没有打开,没有报告错误消息。)
具体而言,在安装程序中尝试打开PDF时(在使用ShellExec()
的自定义代码部分中安装之前或使用[Run]
标志在shellexec
部分中安装之后)需要提升权限,它将产生2个Adobe进程,但不会打开任何窗口(此外,在手动终止这些进程之前,不能打开其他PDF)。但是,如果出现以下情况,PDF将会打开:
在所有其他情况下,PDF将无法启动(在您杀死2个Adobe进程之前,不会打开其他PDF文件)。
这实际上是适用于Windows 7但不适用于Windows 10的代码:
ExtractTemporaryFile('test.pdf');
ShellExec('open',
AddQuotes(ExpandConstant('{tmp}\test.pdf')), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
答案 0 :(得分:1)
我怀疑某些事情正在发生特权,因为结果会有所不同,具体取决于安装程序的启动方式(例如,从已经提升的进程到启动后提升)。
使用ShellExecAsOriginalUser
有效。 e.g:
ExtractTemporaryFile('test.pdf');
ShellExecAsOriginalUser('open',
AddQuotes(ExpandConstant('{tmp}\test.pdf')), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
我不知道这是ShellExec
在Windows 10和ShellExecAsOriginalUser
上为此目的而无效的错误或预期功能。