Les données du programme.
Pour que le programme puisse écrire ces données (ex: son fichier .INI) on utilise le répertoire %AppData% (on y créé un sous-répertoire)
Ce répertoire reste accessible à l'utilisateur en écriture contrairement à ProgramFiles
En le mettant là on évite aussi de "polluer" le répertoire MesDocuments
Pour voir à quoi correspond ce répertoire, taper SET dans une fenêtre "DOS"
On va donc ici s'en servir pour fournir un fichier INI de base, mais qui est accessible en écriture.
Il ne sera pas visible par l'utilisateur directement, car %AppData% est un répertoire caché.
Section [Files], ajout d'un fichier INI qui sera par défaut conservé après désinstallation.
Code:
; Pour que les données du programme soient accessibles en écriture, on les met dans %AppData%
; Ex: installation d'un fichier ini exemple
; Le répertoire %AppData%\MonAppli_Datas sera créé automatiquement
; Ce répertoire correspond à roaming\..., c'est à dire qu'il est accessible en écriture à l'utilisateur
; Il le suivra même s'il se connecte en réseau local
; Tout fichier peut être renommé pendant l'installation
Source: "\Mon_INI_sample.ini"; DestDir: "{userappdata}\MonAppli_Datas"; DestName: "MonINI.ini"; Flags: uninsneveruninstall confirmoverwrite
; Ce fichier ne sera pas supprimé lors de la désinstallation
; Lors d'une réinstallation il y aura demande de confirmation
Ici, on a ajouté deux Flags:
uninsneveruninstall = Ne pas supprimer ce fichier lors de la désinstallation
confirmoverwrite = Confirmer avant de remplacer lors de la réinstallation (si existe)
Comme Ce répertoire n'est pas supprimé par défaut, on peut ajouter un bout de script pour demander à l'utilisateur s'il veut le supprimer.
Code:
; Par défaut, le programme de désinstallation supprimera tout ce qu'il a installé
; sauf les fichiers dont le flag est: uninsneveruninstall
; On peut ajouter des commandes pour supprimer d'autres fichiers
; Pour supprimer (avec confirmation le dossier des données (INI) %Appdata%\MonApplication on ajoute ce code en fin de script
[Code]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
if MsgBox('Voulez-vous supprimer le répertoire des données ?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
begin
DelTree(ExpandConstant('{userappdata}\MonAppli_Datas'), True, True, True);
end;
end;
end;
