2
我已經安裝了我的程序。但是如果我嘗試再次安裝它,它會執行並且程序被替換。Inno Setup - 如何防止安裝應用程序時的安裝?
我可以創建一個特定的註冊表項,這樣我就可以檢查並阻止新的安裝?在這個問題中有一些相關的信息:Inno setup - skip installation if other program is not installed。
我已經安裝了我的程序。但是如果我嘗試再次安裝它,它會執行並且程序被替換。Inno Setup - 如何防止安裝應用程序時的安裝?
我可以創建一個特定的註冊表項,這樣我就可以檢查並阻止新的安裝?在這個問題中有一些相關的信息:Inno setup - skip installation if other program is not installed。
您不需要創建任何註冊表項。安裝程序已經爲卸載程序創建了一個註冊表項。你可以檢查一下。這是相同的關鍵,你提到的問題的答案使用。但是你不需要檢查版本。只要檢查存在。你也應該同時檢查HKEY_LOCAL_MACHINE
和HKEY_CURRENT_USER
:
#define AppId "myapp"
[Setup]
AppId={#AppId}
[Code]
function InitializeSetup(): Boolean;
begin
Result := True;
if RegKeyExists(HKEY_LOCAL_MACHINE,
'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#AppId}_is1') or
RegKeyExists(HKEY_CURRENT_USER,
'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#AppId}_is1') then
begin
MsgBox('The application is installed already.', mbInformation, MB_OK);
Result := False;
end;
end;