2017-03-01 11 views
1

내가 유일한 확인 솔루션은 파일을 설치하지 않도록하는 것입니다 Inno Setup - How to hide certain filenames while installing? (FilenameLabel)이노 설정 - 하위 설치의 파일 이름을 표시하지 마십시오

에서 아이디어를 사용하는 것을 시도하고있다, 당신은 [파일을 사용하여, 보여주고 싶지 않아 ] 섹션. 대신 코드를 사용하여 설치하십시오. ExtractTemporaryFileFileCopy 기능

하지만이 [Run] 절에서 사용하는 숨기려는 파일 사용 [Files] 섹션 ExtractTemporaryFile를 사용하여 (filenamelabel에서 설치하는 동안)

[Files] 
Source: "_Redist\DXWebSetup.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall 

[Run] 
Filename: "{tmp}\DXWebSetup.exe"; Components: DirectX; StatusMsg: "Installing DirectX..."; \ 
    BeforeInstall: StartWaitingForDirectXWindow; AfterInstall: StopWaitingForDirectXWindow 

어떻게 숨길 및 FileCopy 기능?

답변

1

쉬운 표준 [Files][Run] 섹션에 포기에 자신의 모든 것을 코딩하는 것입니다 다음은 CurStepChanged event fuction :

[Files] 
Source: "dxwebsetup.exe"; Flags: dontcopy 

[Code] 

procedure CurStepChanged(CurStep: TSetupStep); 
var 
    ProgressPage: TOutputProgressWizardPage; 
    ResultCode: Integer; 
begin 
    if CurStep = ssInstall then { or maybe ssPostInstall } 
    begin 
    if IsComponentSelected('DirectX') then 
    begin 
     ProgressPage := CreateOutputProgressPage('Installing prerequsities', ''); 
     ProgressPage.SetText('Installing DirectX...', ''); 
     ProgressPage.Show; 
     try 
     ExtractTemporaryFile('dxwebsetup.exe'); 
     StartWaitingForDirectXWindow; 
     Exec(ExpandConstant('{tmp}\dxwebsetup.exe'), '', '', SW_SHOW, 
      ewWaitUntilTerminated, ResultCode); 
     finally 
     StopWaitingForDirectXWindow; 
     ProgressPage.Hide; 
     end; 
    end; 
    end; 
end; 

이도 당신에게 서브의 결과를 확인할 수있는 기회를 제공 - 설치 프로그램. 예 : 하위 설치 프로그램이 실패하거나 취소 될 때 설치가 계속되지 않도록합니다.

그러면 CurStepChanged 대신 PrepareToInstall을 사용하는 것이 더 쉽습니다.


또 다른 옵션은 하위 설치 프로그램을 추출하는 동안 사용자 지정 레이블을 표시하는 것입니다.
Inno Setup - How to create a personalized FilenameLabel with the names I want?

+0

모든 ProgressPage 코드를 제거하기 시작하십시오. 대신, 'StatusLabel.Caption : ='DirectX 설치 '...', ' –

+0

참고 : [Inno 설치 : 실행 섹션에서 진행률 막대를 조작하는 방법?] (http://stackoverflow.com/q/34336466/850848)) [Inno Setup : \ [Run \] 섹션에서 파스칼 함수를 실행] (Inno Setup : [Run] 섹션에서 파스칼 함수를 실행). –

+0

[Inno 설치 사용자 지정 페이지에 이미지/컨트롤 배치] (https://stackoverflow.com/q/43696537/850848)를 참조하십시오. –