如何在 Windows 10 上使用 Inno Setup 打开 PDF?
How to open a PDF with Inno Setup on Windows 10?
如何从 Windows 10 上的 Inno Setup 安装程序打开 PDF?我正在尝试显示帮助文档,而我使用 (based on comments on this question) 并且适用于 Windows 7 的技术在 运行 on Windows 10 时没有任何反应(文件打不开,也没有报错信息。
具体来说,当尝试打开 PDF 时(在使用 ShellExec()
在自定义代码部分安装之前或在使用 shellexec
标志在 [Run]
部分安装之后)安装程序需要提升的权限,它将产生 2 个 Adobe 进程,但不会打开 windows(此外,在手动终止这些进程之前,无法打开其他 PDF)。但是,如果出现以下情况,PDF 将打开:
- 另一个 PDF 已经打开,
- 安装程序是从已经提升的命令提示符启动的,或者
- 安装程序是从 Inno Setup Studio 启动的
在所有其他情况下,PDF 将不会启动(直到您终止 2 个 Adobe 进程,其他 PDF 才会打开)。
这基本上是适用于 Windows 7 但不适用于 Windows 10 的代码:
ExtractTemporaryFile('test.pdf');
ShellExec('open',
AddQuotes(ExpandConstant('{tmp}\test.pdf')), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
我怀疑特权正在发生某些事情,因为结果因安装程序的启动方式而异(例如,从已经提升的进程与启动后提升)。
使用 ShellExecAsOriginalUser
有效。例如:
ExtractTemporaryFile('test.pdf');
ShellExecAsOriginalUser('open',
AddQuotes(ExpandConstant('{tmp}\test.pdf')), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
我不知道 ShellExec
在 Windows 10 和 ShellExecAsOriginalUser
上无法用于此目的是错误还是预期功能。
如何从 Windows 10 上的 Inno Setup 安装程序打开 PDF?我正在尝试显示帮助文档,而我使用 (based on comments on this question) 并且适用于 Windows 7 的技术在 运行 on Windows 10 时没有任何反应(文件打不开,也没有报错信息。
具体来说,当尝试打开 PDF 时(在使用 ShellExec()
在自定义代码部分安装之前或在使用 shellexec
标志在 [Run]
部分安装之后)安装程序需要提升的权限,它将产生 2 个 Adobe 进程,但不会打开 windows(此外,在手动终止这些进程之前,无法打开其他 PDF)。但是,如果出现以下情况,PDF 将打开:
- 另一个 PDF 已经打开,
- 安装程序是从已经提升的命令提示符启动的,或者
- 安装程序是从 Inno Setup Studio 启动的
在所有其他情况下,PDF 将不会启动(直到您终止 2 个 Adobe 进程,其他 PDF 才会打开)。
这基本上是适用于 Windows 7 但不适用于 Windows 10 的代码:
ExtractTemporaryFile('test.pdf');
ShellExec('open',
AddQuotes(ExpandConstant('{tmp}\test.pdf')), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
我怀疑特权正在发生某些事情,因为结果因安装程序的启动方式而异(例如,从已经提升的进程与启动后提升)。
使用 ShellExecAsOriginalUser
有效。例如:
ExtractTemporaryFile('test.pdf');
ShellExecAsOriginalUser('open',
AddQuotes(ExpandConstant('{tmp}\test.pdf')), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
我不知道 ShellExec
在 Windows 10 和 ShellExecAsOriginalUser
上无法用于此目的是错误还是预期功能。