J'ai trouvé un plug-in de nsis intéressant : registry. Il est génial pour ça.
Le code que j'utilise pour la dernière version de PortbaleWxMaxima a besoin de ce plug-in, et donne (je n'ai mis que la partie intéressante):
- Code: Tout sélectionner
!include "Registry.nsh"
...
...
; test s'il existe une autre configuration dans la base de registre
TestProfile:
${registry::KeyExists} "HKEY_CURRENT_USER\Software\wxMaxima" $R8
StrCmp $R8 "0" ExecWithOtherProfile ExecApp
ExecWithOtherProfile:
StrCpy $OUTDIR '${OUTDIR}'
; on sauvegarde la configuration de l'hôte
${registry::SaveKey} "HKEY_CURRENT_USER\Software\wxMaxima" "$EXEDIR\Profile\HKCUWxMaxima_hote.reg" "/G=1 /D=2" $R9
; on installe la notre
${registry::RestoreKey} "$EXEDIR\Profile\HKCUWxMaxima.reg" $R9
; on lance l'appli
ExecWait "$ExecString"
; on resauvegarde notre configuration
${registry::SaveKey} "HKEY_CURRENT_USER\Software\wxMaxima" "$EXEDIR\Profile\HKCUWxMaxima.reg" "/G=1 /D=2" $R9
; et on réinjecte celle de l'hôte
${registry::RestoreKey} "$EXEDIR\Profile\HKCUWxMaxima_hote.reg" $R9
Goto EndSection
; Lancement Application
ExecApp:
StrCpy $OUTDIR '${OUTDIR}'
;Intallation du Profile
${registry::RestoreKey} "$EXEDIR\Profile\HKCUWxMaxima.reg" $R9
ExecWait "$ExecString"
; Sauvegarde du profile : on copie les clefs de la base de registre
${registry::SaveKey} "HKEY_CURRENT_USER\Software\wxMaxima" "$EXEDIR\Profile\HKCUWxMaxima.reg" "/G=1 /D=2" $R9
; On supprime les clefs de la base de registre
${registry::DeleteKey} "HKEY_CURRENT_USER\Software\wxMaxima" $R9
DeleteRegKey HKCU "Software\wxMaxima"
Goto EndSection
EndSection:
${registry::Unload}
SectionEnd
Sinon, voilà. Plus de problème de ce genre, plus de trace de l'appli portable, même s'il en existe une installée sur le poste hôte.
Joshua, peux-tu remettre encore une fois à jour, please, ça devrait être la dernière (j'espère...), merci.
-
mageti
- Messages : 234
- Géo : Valenciennes pdt les vacances, Bordeaux sinon