#Var directoryexe# ;Declare the variable
###Section directory###
StrCpy $DIRECTORYEXE "$EXEDIR"
###SectionEnd###
**Section "ZIP" locatezip**
ClearErrors
${Locate} "$DIRECTORYEXE" "/L=F /M=something.zip /S=1K" "ExtractZip"
; '.zip' file next to .exe with size 1 Kb or more
IfErrors 0 noerror
MessageBox MB_OK "ERRROR" IDOK +3
noerror:
MessageBox MB_OK "$$R0=$R0"
**SectionEnd**
功能ExtractZip
strcpy "$R0" "$R9"
ZipDLL::extractall "$R0" "$PROGRAMFILES\Example"
Pop $0
MessageBox MB_OK "$$0=$0"
StrCpy $0 StopLocate
Push $0
FunctionEnd
如果zip在exedir中,提取它但是当它没有写错误消息时,问题是什么? :S
答案 0 :(得分:0)
在您的特定情况下,您可以使用ZipDLL :: extractall在找不到.zip时会收到的错误消息。
${Locate}
无法知道是否找不到文件是错误的。你必须自己跟踪这个。如果从未调用过回调函数(ExtractZip),则找不到该文件...