2012-11-16 3 views
0

자동 설치 프로그램에 대한 NSIS doc 예제 인 here을 사용하려고합니다. 줄의 주석 처리 해제NSIS 자동 설치 프로그램 - 점프가 관찰되지 않음

; SilentInstall silent 

그렇다면 설치 관리자는 소리를 내지 않습니다. 그러나 메시지 상자를 표시합니다. 설치 프로그램이 소리를 내지 않아도 메시지 상자가 나타납니다. 메시지 상자를 조용히 만들려면 각 메시지 상자마다/SD 옵션을 사용해야합니다. 예제 스크립트는 여기에 그것을 제안합니다 :

MessageBox MB_OK|MB_ICONINFORMATION "This is not a silent installer" /SD IDOK 

메시지 상자를 무음으로 만드는 다른 방법은 노출되어 있습니다. 조용한 경우 두 줄 건너 뛰기 (메시지 상자를 표시하지 않음)

IfSilent 0 +2 
    MessageBox MB_OK|MB_ICONINFORMATION 'This is a "silent" installer' 

이 두 번째 해결책은 저에게 효과적이지 않습니다. 설치 프로그램을 자동으로 설정하면 '자동 설치 프로그램입니다'라는 상자가 나타납니다. 변경 한 경우

MessageBox MB_OK|MB_ICONINFORMATION 'This is a "silent" installer' /SD IDOK 

메시지가 표시되지 않습니다.

IfSilent 0 +2 

의 점프가 작동하지 않습니다? +3도 제작하지 않습니다.

답변

3

자동 설치의 경우 첫 번째 인수가 으로 점프되기 때문에 (두 번째 것은 자동이 아닙니다).

이 시도 : zbynour 말했듯이

IfSilent +2 0 
+0

:

는 logiclib를 사용, 상대 점프 문제를 피하려면? 이게 무슨 뜻입니까?) 감사 ! – octoback

+0

예. 더 정확하게 말하면 : 자동 모드가'MessageBox' 다음의 명령어로 점프하면 하나의 명령어 ('MessageBox') 만 건너 뜁니다. 오프셋 0은 현재 라인을 의미하고, +1은 라인 바로 다음을 의미합니다. 그래서 +2는'MessageBox' 바로 뒤에있는 라인을 의미합니다 (그리고 이것은 실행될 것입니다). – zbynour

+0

과 0은 '조용하지 않으면 뛰어 오르지 말고 그냥 현재 줄에 있어야한다'는 뜻입니다. – octoback

5

, 당신은 매개 변수가 혼합되었다. 다른 0 맞나요, 그 다음이 개 지침에 뛰어 침묵 경우

!include LogicLib.nsh 

... 

${IfNot} ${Silent} 
    MessageBox ... 
${EndIf}