diff options
author | Yann Leboulanger <asterix@lagaule.org> | 2005-11-18 13:43:16 +0300 |
---|---|---|
committer | Yann Leboulanger <asterix@lagaule.org> | 2005-11-18 13:43:16 +0300 |
commit | 5639faaa01de0a5291fe0de6bea7874476a29fda (patch) | |
tree | dc71857ea591f5382c12124270243f2accf3f2a7 /gajim.iss | |
parent | e1be750f6224e7cdd3225f40b54fe75d419628f3 (diff) |
we now ask the user if he/she want to remove a previously installed version under windows
Diffstat (limited to 'gajim.iss')
-rw-r--r-- | gajim.iss | 49 |
1 files changed, 49 insertions, 0 deletions
@@ -13,6 +13,7 @@ Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixe [Tasks] Name: desktopicon; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; Components: main +Name: removeprevious; Description: "Remouve previously installed version"; GroupDescription: "Previous install:"; Components: main; Check: IsAlreadyInstalled('Gajim'); [Files] Source: "dist\*.pyd"; DestDir: "{app}\src" @@ -31,3 +32,51 @@ Name: "{userdesktop}\Gajim"; Filename: "{app}\src\gajim.exe"; WorkingDir: "{app} [Run] Filename: "{app}\src\gajim.exe"; Description: "Launch application"; Flags: postinstall nowait skipifsilent + +[Code] + +function GetUninstallPath( AppID: String ): String; +var + sPrevPath: String; +begin + sPrevPath := ''; + if not RegQueryStringValue( HKLM, + 'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+AppID+'_is1', + 'UninstallString', sPrevpath) then + RegQueryStringValue( HKCU, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+AppID+'_is1' , + 'UninstallString', sPrevpath); + + Result := sPrevPath; +end; + +function IsAlreadyInstalled( AppID: String ): Boolean; +var + sPrevPath: String; +begin + sPrevPath := GetUninstallPath( AppID ); + + + if ( Length(sPrevPath) > 0 ) then + Result:=true + else + Result:=false; + end; + +procedure CurStepChanged(CurStep: TSetupStep); +var + sUninstPath: String; + sPrevID: String; + ResultCode: Integer; +begin + if CurStep = ssInstall then + begin + sPrevID := 'Gajim'; + sUninstPath := GetUninstallPath( sprevID ); + + if ( Length(sUninstPath) > 0 ) then + begin + sUninstPath := RemoveQuotes(sUninstPath); + Exec( RemoveQuotes(sUninstPath), '/silent', '', SW_SHOW, ewWaitUntilTerminated, ResultCode); + end; + end; +end; |