以前のバージョンを探して、先に進む前に削除する単純な Inno Setup インストーラーをまとめようとしています。次のコードを取得するまで、すべてが正常に機能しています。
if Exec(UninstallString, '/SILENT', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
begin
MsgBox('Previous version found and uninstalled successfully.', mbInformation, MB_OK);
end
else
begin
MsgBox('Please uninstall the previous version of this mod before continuing.', mbInformation, MB_OK);
Result := FALSE;
end;
これは非常に単純なコードですが、常に失敗します。の内容を確認しましたが、UninstallString
正しい ( C:\Windows\unins000.exe
) ですが、Execは「ディレクトリ名が無効です」というエラーで失敗します。
「UninstallString」の内容を正しく読み取れないようです。手動で入力すると(たとえばExec('C:\Windows\unins000.exe, ...
)正常に機能するためです。
Exec
文字列「UninstallString」を意図したとおりに処理するにはどうすればよいですか?