2013-07-29 5 views
1

우리는 설치 프로그램과 함께 다른 타사 소프트웨어를 거의 설치하지 않으며 제품 설치시 중에 설치합니다. 자동 모드로 설치하고 종료 코드 ( )를 캡처하면 설치가 성공적으로 끝나고 "3010"으로 종료 코드를 제공합니다. 다시 부팅해야합니다. 그런 경우에 마지막으로 재부팅 페이지를 표시하고 싶지만 사용자 지정 메시지를주고 싶습니다.Inno 설치 : 맞춤 메시지

마무리 페이지에 맞춤 메시지를 표시하는 가장 좋은 방법은 무엇입니까?

[Messages] 
#if FileExists("c:\RebootFile.txt")==0 
    FinishedRestartLabel=To complete the installation of ConditionalMessageOnWizard, Setup must restart your computer. Would you like to restart now? 
#else 
    FinishedRestartLabel=Reboot Required 
#endif 

위의 코드를 사용하고 있지만 fileexists 기능에 {sd} 또는 {tmp}와 같은 동적 경로를 사용할 수 없습니다.

아무도 도와 줄 수 있습니까?

+1

은'{TMP}'상수 값은 ... 전처리시 – TLama

+1

기다립니다 쓸모가있을 것입니다, 당신은 당신이 전처리하여이 작업을 수행 할 경우에도 확실? 런타임에 조건부로 해당 메시지를 변경하려고하지 않습니까? 스크립트는 클라이언트 시스템의 런타임이 아닌 설치를 빌드 할 때 파일이 존재하는지 여부에 따라'FinishedRestartLabel' 텍스트를 선택합니다. 질문을 편집하고 요구 사항을 자세히 설명해 주시겠습니까? – TLama

+0

재부팅이 필요한 경우 wpfinishedpage 중 런타임에 FinishedLabel 메시지를 변경합니다. 괜찮 았어. – user1752602

답변

1

문제를 명확히 한 후에 특정 파일이 런타임에 FinishedLabel 캡션을 추출하고 조건부로 변경하는지 실제로 확인하고자하는 것으로 나타났습니다.

#emit 또는 짧은 # 시작 문은 전 처리기에서 사용됩니다. 사전 처리는 컴파일 직전에 실행됩니다. 이 프로세스가 완료된 후에 조건부로 스크립트를 수정할 수 있습니다. 따라서 위의 스크립트를 사용하면 실제로 설정을 컴파일하는 컴퓨터에 c:\RebootFile.txt 파일이 있고 결과에 따라 FinishedRestartLabel 메시지의 값을 선택합니다. 그러나 두 텍스트를 설치 바이너리로 컴파일하지 않습니다.

코드에서 FinishedLabel 캡션을 수정할 수 있습니다. 예 : 이 방법. 거기 당신은 아무 문제없이 상수를 확장 할 수 있습니다 :

[Setup] 
AppName=My Program 
AppVersion=1.5 
DefaultDirName={pf}\My Program 

[Code] 
function NeedRestart: Boolean; 
begin 
    Result := True; 
end; 

procedure CurPageChanged(CurPageID: Integer); 
begin 
    if not FileExists(ExpandConstant('{sd}\RebootFile.txt')) then 
    WizardForm.FinishedLabel.Caption := 'RebootFile NOT found. Restart ?' 
    else 
    WizardForm.FinishedLabel.Caption := 'RebootFile WAS found. Restart ?'; 
end; 
+0

TLama에게 감사드립니다. 그것은 나를 위해 일하고있다. – user1752602

+0

여러분을 환영합니다! – TLama