2011-05-13 175 views
2

我使用:NSIS安装,如果文件没有被覆盖然后退出安装程序

 ; Set output path to the installation directory. 
    SetOutPath $INSTDIR\ 

    SetOverwrite on 

    ; Put file there 
    File "ACC\*.APP" 

覆盖文件,但是如果文件不能被覆盖,然后我想安装程序退出,如何做这个? 是否需要使用错误标志值?但是如何?如果覆盖模式设置为“尝试”和 的文件不能被覆盖,或者 如果覆盖模式设置为“开”

回答

4

文件命令设置错误标志 和文件无法覆盖 且用户选择忽略

!include LogicLib.nsh 
Section 
ClearErrors 
SetOverwrite try 
SetOutPath $INSTDIR 
File "ACC\*.APP" 
${If} ${Errors} 
    Quit 
${EndIf} 
SectionEnd 
+0

主席先生,我可以检查文件是否已打开? – sqlchild 2011-05-13 12:42:50

+0

SIR也可以在文件无法覆盖时出现的错误对话框,可以绕过它,直接退出安装程序。我不想显示该对话框,也就是说,我不希望用户能够按Abort,Retry或Ignore按钮,但当覆盖失败时,出现一个消息框,说,失败,并且退出 – sqlchild 2011-05-13 12:48:48

+2

@sqlchild:如果我指定“尝试”,使用“SetOverwrite尝试” – Anders 2011-05-13 12:52:29