NullSoft / NSIS使用Adobe 11启动PDF无法正常工作

时间:2013-12-09 18:53:11

标签: windows windows-8 adobe nsis

我有一个NSIS脚本,它有一个show readme函数,可以使用以下行在所有操作系统中成功启动pdf:

ExecShell "open" "$0\$(APP_DATA_PATH)\AppData\Readme\readme_$(LOCAL_CODE).pdf"

但是 - 不在Windows 8中。如果Adobe以外的任何其他阅读器是默认阅读器,那么它似乎没问题。我们必须支持Adobe,在Windows 8的其他地方启动pdf文件似乎没有任何问题。

是否还有其他NSIS命令我可以尝试启动我可以尝试的文件?还有其他建议吗?

1 个答案:

答案 0 :(得分:0)

尝试使用默认动词:ExecShell "" "c:\full\path\to\file.pdf"

编辑:

Section

StrCpy $0 "$desktop\test.pdf"

; This should be the same as using ExecShell
System::Call 'shell32::ShellExecute(i$hwndparent,i0,t"$0",i0,i0,i5)i.r1'
DetailPrint "ShellExecute: Return=$1 (> 32 for success)"

; Let's try really hard by using SEE_MASK_INVOKEIDLIST
!define SEE_MASK_INVOKEIDLIST 0x0000000C
!define SEE_MASK_FLAG_DDEWAIT 0x00000100
System::Call '*(i60,i${SEE_MASK_INVOKEIDLIST}|${SEE_MASK_FLAG_DDEWAIT},i$hwndparent,i0,t"$0",i0,i0,i5,i,i0,i,i,i,i,i)i.r2' ; Allocate SHELLEXECUTEINFO
System::Call 'shell32::ShellExecuteEx(ir2)i.r1'
System::Free $2
DetailPrint "ShellExecuteEx: Success=$1"

SectionEnd