2010-04-21 6 views
1

J'ai un problème avec mon installation de nsis créée. J'ai besoin de vérifier si le produit est déjà installé et ensuite obtenir le chemin vers le produit déjà installé. C'est parce que je veux construire un "Feature-Setup" qui installe d'autres composants dans le dossier installé précédent. Est-ce que quelqu'un sait comment construire ce programme d'installation? Ce sera génial si la configuration des fonctionnalités démarre l'installation et vérifie le chemin du produit installé. Une fois la vérification terminée, le chemin doit être (en lecture seule) dans "Dossier de destination" sous "Choisir l'emplacement d'installation".NSIS déjà installé le produit

Merci pour toute aide
Buba

Répondre

4

NSIS ne pas écrire quoi que ce soit partout sur elle-même, donc à moins que vous avez ajouté une entrée à <HKLM/HKCU>\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall ou Software \ votreentreprise \ YourApp vous-même, vous avez à peu près à la recherche de la machine avec FindFirst, FindNext. (Laid)

Si vous avez une entrée de registre, vous pouvez utiliser InstallDirRegKey ou les fonctions normales de registre:

!define MyRegKey "Software\MyCompany\MyApp" 

InstallDirRegKey HKLM "${MyRegKey}" InstallDir 

var LockDirPage 

!include LogicLib.nsh 
Function .onInit 
${If} ${FileExists} "$instdir\MyApp.exe" 
    StrCpy $LockDirPage 1 
${EndIf} 
FunctionEnd 

Function dirshow 
${If} $LockDirPage = 1 
    FindWindow $0 "#32770" "" $HWNDPARENT 
    GetDlgItem $1 $0 0x3FB 
    EnableWindow $1 0 
    GetDlgItem $1 $0 0x3E9 
    EnableWindow $1 0 
${EndIf} 
FunctionEnd 

page directory "" dirshow 
page instfiles 

Section 
WriteRegStr HKLM "${MyRegKey}" InstallDir $instdir ;save location 
SectionEnd 
Questions connexes