2010-03-18 8 views
3

J'ai une ancienne application VB6 qui est déployée en utilisant une très ancienne version 16 bits d'InstallShield. J'ai créé un nouveau programme d'installation avec Inno Setup pour être 64 bits amical pour mon application VB6 avec des mises à jour.Utilisez Inno Setup pour supprimer une autre application non installée avec Inno Setup pendant l'installation

Tous mes utilisateurs ont déjà installé la version InstallShield existante. Actuellement, j'ai installé Inno Setup. Le problème est que je ne veux pas remplacer les anciens fichiers d'installation InstallShield, mon Inno Setup s'installe dans un autre répertoire. Cela provoque des problèmes parce que maintenant j'ai deux versions installées, avec deux icônes séparées.

J'ai besoin d'un moyen d'appeler le programme de désinstallation de l'ancienne application InstallShield lorsque j'installe la nouvelle version d'Inno Setup. Comment puis-je appeler le programme de désinstallation à partir de Windows Ajouter/supprimer des programmes via Inno Setup? Si je réutilise l'ID de l'application pour que la version InstallShield soit identique à celle de l'installation Inno, puis que je supprime manuellement les anciens fichiers, cela fonctionnerait-il?

+0

dunno si vous l'avez compris mais voici une bonne solution http://stackoverflow.com/a/2466537/541038 –

Répondre

6

Vous devez localiser la clé de Registre de désinstallation InstallShield qui se trouve sous HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ ou HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\, puis exécutez sa valeur UninstallString. Une fois cela fait, supprimez la clé de registre: il n'est pas possible de réutiliser la même clé avec Inno Setup car il ajoutera toujours _is1 à votre AppId pour générer le nom de la clé de registre de désinstallation. En outre, sur les anciennes versions de Windows, il peut également tronquer ce nom de clé et ajouter une somme de contrôle, en raison des limitations de longueur.

Tout cela à partir d'une fonction d'événement PrepareToInstall.

Questions connexes