2

Inno Setupでサイレントおよび非常にサイレントなアンインストールを無効にすることは可能ですか?

4

1 に答える 1

3

直接無効にすることはできませんが、サイレントモードで実行されているかどうかを確認し、InitializeSetup()/InitialiseUninstall()イベント機能中にメッセージ/終了を表示することはできます。

function InitializeSetup(): Boolean;
begin
  // Default to OK
  result := true;

  // If it's in silent mode, exit
  if WizardSilent() then
  begin
    MsgBox('This setup doesn''t support silent installations.', mbInformation, MB_OK);
    result := false;
  end;
end;

またはアンインストールの場合:

function InitializeUninstall(): Boolean;
begin
  // Default to OK
  result := true;

  // If it's in silent mode, exit
  if UninstallSilent() then
  begin
    MsgBox('This setup doesn''t support silent uninstallation.', mbInformation, MB_OK);
    result := false;
  end;
end;

(未テストのエアコード)

サイレントモード(???:o)でセットアップを再度非サイレントモードで再実行する場合は、InitializeSetupifブロック内でこれを使用できます。

ShellExecAsOriginalUser('', ExpandConstant('{srcexe}'), '', '',  SW_SHOWNORMAL, ewNoWait, 0);

これにより、渡された他のパラメータもすべて削除され、昇格のプロンプトが再度表示されることに注意してください。

于 2012-05-30T13:39:17.033 に答える