Pour comparer les versions, je dois savoir si mon application a déjà été installée. J'utilise le registre pour stocker toute l'information nécessaire et il serait très utile si je pouvais en quelque sorte lire les chaînes du registre. Le problème principal ici est que je ne connais pas mon propre GUID qui a été randomisé lors d'une installation précédente.Comment puis-je trouver une application si je ne connais pas son GUID?
Pour générer mon chemin de registre, j'ai écrit le script suivant:
Function .onInit
${If} ${RunningX64}
StrCpy $R0 "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
${Else}
StrCpy $R0 "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
${EndIf}
FunctionEnd
tronçon principal:
Section "Main" sec
System::Call 'ole32::CoCreateGuid(g .s)'
Pop $0
WriteRegStr HKLM "$R0\$0" 'DisplayVersion' '${AppVersion}'
SectionEnd
Donc, au fond, je dois trouver un moyen de lire la chaîne DisplayVersion
. Je souhaite qu'il y avait une variation de FindFirst
mais pour le registre.
Wow, merci! – CeeZee