すべてのコンポーネントがすでにインストールされているときにセットアップを停止しようとしています。すべてのコンポーネントがInno Setupにインストールされている場合のセットアップの終了
インストール例:
- まずインストール:1つのコンポーネントをインストール
- セカンドインストール:コンポーネントの残りの部分をインストール
- サードインストール:セットアップを開始すると
wpFinished
ページに直接移動または停止し、メッセージを入れます「すべてのコンポーネントは既にインストールされている」と言っています。procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean); begin Confirm := False; end; procedure InitializeWizard; var ItemIndex: Integer; InstallEn: String; InstallFr: String; InstallDe: String; CompDescEnIndex: Integer; CompDescFrIndex: Integer; CompDescDeIndex: Integer; Check: Integer; begin # This part is to make not selectable component already install if RegQueryStringValue(HKLM, 'Software\COMPANY\{#RegProduct}\{#RegCurVer}', 'Install-ENG', InstallEn) then if ((InstallEn = 'International Pack') or (InstallEn = 'Pack International') or (InstallEn = 'International Paket')) then ItemIndex := WizardForm.ComponentsList.Items.IndexOf(CustomMessage('CompDescEn')); WizardForm.ComponentsList.ItemEnabled[ItemIndex] := False; if RegQueryStringValue(HKLM, 'Software\COMPANY\{#RegProduct}\{#RegCurVer}', 'Install-FRA', InstallFr) then if ((InstallFr = 'French Pack') or (InstallFr = 'Pack France') or (InstallFr = 'Franzosisch Paket')) then ItemIndex := WizardForm.ComponentsList.Items.IndexOf(CustomMessage('CompDescFr')); WizardForm.ComponentsList.ItemEnabled[ItemIndex] := False; if RegQueryStringValue(HKLM, 'Software\COMPANY\{#RegProduct}\{#RegCurVer}', 'Install-DEU', InstallDe) then if ((InstallDe = 'German Pack') or (InstallDe = 'Pack Allemand') or (InstallDe = 'Deutsches Paket')) then ItemIndex := WizardForm.ComponentsList.Items.IndexOf(CustomMessage('CompDescDe')); WizardForm.ComponentsList.ItemEnabled[ItemIndex] := False; # After I try to say if all component are install, close the wizard. CompDescEnIndex := WizardForm.ComponentsList.Items.IndexOf(CustomMessage('CompDescEn')); CompDescFrIndex := WizardForm.ComponentsList.Items.IndexOf(CustomMessage('CompDescFr')); CompDescDeIndex := WizardForm.ComponentsList.Items.IndexOf(CustomMessage('CompDescDe')); if not WizardForm.ComponentsList.ItemEnabled[CompDescEnIndex] and not WizardForm.ComponentsList.ItemEnabled[CompDescFrIndex] and not WizardForm.ComponentsList.ItemEnabled[CompDescDeIndex] then Check := 1; if (Check <> 0) then WizardForm.Close; end;
注:コードは非常にきれいではないかもしれないが、私はパスカル+ Inno Setupの中で始めた私はいくつかの研究ここや他のウェブサイト上に作りましたし、私は次の操作を行う必要があり
Code
セクション私のすべてのコンポーネントがインストール(および選択できません)している場合は
は、私が...
私はwpFinished
ページに直接移動するための解決策を見つけることができない...ウィザードが継続停止しないようにありたいですそれを行う方法?
私のケースではWizardForm.Close;
が機能しないようであるため、すべてのコンポーネントがインストールされている場合、ウィザードを停止するにはどうすればよいですか?
ありがとうございました。