2015-01-14 2 views
0

내 응용 프로그램의 inno 설정에서/s (자동 설치) 명령을 사용하여 NSIS가 작성한 세 번째 실행 파일을 실행하려면 아래 스크립트가 필요합니다.Inno 설정 Exec() 명령 매개 변수를 사용하는 다른 타사 실행 파일

[Files] 
Source: "..\programB.exe"; DestDir: "{app}"; Flags: ignoreversion; AfterInstall: InstallProgramB 


[Code] 
procedure InstallProgramB; 

var 
ResultCode: Integer; 

begin 
    // Install programB and wait for it to terminate 
    if not Exec(ExpandConstant('{app}\programB.exe'), '/s', '', SW_SHOWNORMAL, 
    ewWaitUntilTerminated, ResultCode) then 
    begin 
    MsgBox('Failed to install programB!' + #13#10 + 
     SysErrorMessage(ResultCode), mbError, MB_OK); 
    end; 
end; 

문제는 "자동 설치"가 아닌 programB.exe의 마법사를 팝업한다는 것입니다. 나는 this 을보고 명령 줄 매개 변수 "/ s"를 두 번째 인수에 놓았지만,/s는 작동하지 않는 것 같습니다. 모든 의견은

+0

IMHO가 작동해야합니다. 그렇지 않은 경우 다른 매개 변수를 지정해야 할 수도 있습니다 (확실하지는 않음). 'SW_SHOWNORMAL' 대신에'ShowCmd' 매개 변수에 대해'SW_HIDE' 플래그를 지정하여 GUI 프로세스를 숨길 수는 있지만이 설정을 실행하는 실제 문제를 숨길뿐입니다. 명령 프롬프트에서 실행하면이 명령 행이 작동합니까? – TLama

+0

@tlama 좋은 지적! 올바른 명령은/S가 아닌/S가되어야합니다. – Heidi

+0

[링크] (http://nsis.sourceforge.net/Docs/Chapter4.html#silent) – Heidi

답변

1

확인 NSIS Help

Passing /S on the command line (case sensitive)) 

그래서 올바른 매개 변수/S,하지/S를해야한다 환영합니다. 대소 문자를 구분합니다.