Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Leboulanger <asterix@lagaule.org>2005-11-18 13:43:16 +0300
committerYann Leboulanger <asterix@lagaule.org>2005-11-18 13:43:16 +0300
commit5639faaa01de0a5291fe0de6bea7874476a29fda (patch)
treedc71857ea591f5382c12124270243f2accf3f2a7 /gajim.iss
parente1be750f6224e7cdd3225f40b54fe75d419628f3 (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.iss49
1 files changed, 49 insertions, 0 deletions
diff --git a/gajim.iss b/gajim.iss
index 538e297ee..6a20d01c9 100644
--- a/gajim.iss
+++ b/gajim.iss
@@ -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;