ユーザーが既にソフトウェアをインストールしているかどうかを検出するにはどうすればよいですか?もしそうなら、古いバージョンを削除する方法を提供する方法はありますか?古いインストールを検出して削除を提供するにはどうすればよいですか?
私はそれを確認するためにいくつかの行を書いています。それは今のところ正しいのですか?これが正しい場合は、インストールを続行するか古いバージョンをアンインストールするかをユーザーに選択させるにはどうすればよいですか?
#define UNINSTKEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\setupname_is1"
var
uninstallPath: string;
function InitializeSetup: Boolean;
begin
if (RegQueryStringValue(HKLM,'{#UNINSTKEY}','UninstallString',uninstallPath)) and
(uninstallPath <> '') and (fileexists(uninstallPath)) then
begin
Result :=
(MsgBox(CustomMessage('NotVerifiedVersionFound'), mbConfirmation,
MB_YESNO or MB_DEFBUTTON2) = IDYES);
end;
{ ... }
end;
注意。例外はInno以外の設定からアップグレードする場合です。いったんInnoを使用すると、このすべてがあなたのために魔法のように扱われます。 – Deanna
[InnoSetup:以前にインストールされたバージョンを自動的にアンインストールする方法は?](0120-18753) – Deanna
@Deanna For myお客様は、このソフトウェアは常にイノセットアップでインストールされることは事実です。しかし、Innoは本当にそれを "処理"していませんか?すべての古いファイルを上書きしているだけです。私はUninstallerを生成することができます。しかし、私は最初のセットアップでアンインストール機能を使いたい。 – Exa