PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Suppresion d'un repertoire en cas de desinstallation
Suppresion d'un repertoire en cas de desinstallation
Iniciado por Pascal FOURNIER, 18,abr. 2020 11:16 - 14 respuestas
Miembro registrado
38 mensajes
Publicado el 18,abril 2020 - 11:16
Bonjour a tous et faites attention a vous

Dans un projet je crée des fichiers dans un répertoire par programmation.
En cas de desinstallation du logiciel, ce répertoire n'est bien sur pas supprimé.
comment faire pour le supprimer ?

merci pour votre aide

Pascal Fournier
Miembro registrado
4.362 mensajes
Publicado el 18,abril 2020 - 11:24
Bonjour,
Ton répertoire est il créé en dur, dans ce cas, dans la procédure de désinstallation, il y a la possibilité de créer un script.
Une autre solution est d'inclure cette création dans la procédure d'install.
Sinon, je ne vois que RevoUninstaller

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
38 mensajes
Publicado el 18,abril 2020 - 15:30
En fait il s'agit de repertoires créés lors de la creation d'un dossier et qui contient les fichiers de cette societe
il peut donc y avoir plusieurs répertoires
lors de la création.
Il ne me suffit pus que de faire un hchangerep lorsque l'on se connecte et que l'on choisi le dossier.
ces répertoires "Dossiers" se trouvent quand même dans un répertoire par defaut
Mais lors de la suppression du logiciel j'aimerais qu'ils soient supprimés

Cordialement
Pascal Fournier
Miembro registrado
38 mensajes
Publicado el 18,abril 2020 - 15:39
créer le répertoire communs aux dossiers lors de l'installation est bien
pouvez-vous m'en dire plus ?

cordialement

Pascal Fournier
Miembro registrado
4.362 mensajes
Publicado el 18,abril 2020 - 16:37
Sans aller jusque là, créer les répertoires de travail dans le répertoire de données, paramétrable par l'utilisateur lors de l'installation. décrit par FicInst dans l'installation et la désinstallation et dans le code par fRepDonnées est déjà un bon départ.
https://doc.pcsoft.fr/?2028017&name=wdinst_parametrer_repertoire_des_fichiers_donnees_des_fichiers_groupware_utilisateur
Après, il faut bien lire la description des options de WDInst.

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
356 mensajes
Publicado el 19,abril 2020 - 12:03
Bonjour,

Lors de l'installation il y a généralement un fichier "uninst.inf" (ou équivalent) de créer.
Tu devrais pourvoir écrire dynamiquement (par ton application) les fichiers et dossiers créés de façon à ce qu'il soient désinstallés comme les autres
Pour WDINST la syntaxe est assez facile à trouver :
EFF_REP= pour effacer un dossier
EFF_FIC= pour effacer un fichier

Tiens nous au courant

--
Francis MOREL
http://www.SoftProtect.fr
Miembro registrado
4.362 mensajes
Publicado el 19,abril 2020 - 12:54
Pour créer le répertoire "global" souhaité, tu as aussi la possibilité de créer un .BAT et de le lancer à l'issue de l'install.
Bouton "Avancé" dans l'option "Fichier de l'installation" lors de la création via procédure d'installation (désolé avec une image se serait plus simple, mais il y a toujours de problèmes d'upload)
Via WDInst : Paramètre de l'installation/Fin de l'installation/Ligne de commande, il y a plus ou moins la même commande pour la désinstallation dans Paramètre de l'installation/Paramètres du désinstalleur

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
38 mensajes
Publicado el 21,abril 2020 - 17:39
Bonjour Francis
T'as Solution est bien sur la meilleur

Au début je forçait pour intaller les Bases de données dans le répertoire d'install.
Mais je voudrais donner à l'utilisateur la possibilité d'indiquer le chemin des données

En voyant ta réponse, jai essayé de l'appliquer :
j'arrive à écrire dans le fichier uninst.inf
mais lors de la désinstallation le répertoire n'est pas supprimé

qu'est-ce que je fais de mal ?

cordialement

Pascal Fournier
Miembro registrado
356 mensajes
Publicado el 21,abril 2020 - 18:49
Bonjour Pascal

Heureux d'avoir pu t"aider, et merci pour le remerciement.

Perso dans le test auquel j'ai procédé pour voir le fonctionnement
- j'ai écrit premièrement les fichiers à supprimer (le nom complet disque, dossier et fichier)
- j'ai écrit ensuite le dossier à supprimer (idem complet avec un "\" en fin)
et j'ai fait toutes ces écritures au début du fichier et pas à la fin.

Je ne sais pas si toutes ces précautions sont nécessaires mais dans ce cas ça a fonctionn&.

Tiens nous au courant.

--
Francis MOREL
http://www.SoftProtect.fr
Miembro registrado
356 mensajes
Publicado el 22,abril 2020 - 11:32
Bonjour,

En fait c'est un peu plus compliqué, j'avais testé rapidement avec un éditeur et ça marchait correctement.
Par programmation depuis Windev pour conserver toutes les fonctionnalités du fichier il faut :
- conserver la première ligne du fichier "uninst.inf" (pour utilisation directe par "WDUNINST.EXE")
celle-ci comporte 2 caractères d'identification (0xFF 0xFE) puis une ligne commencant par EFF_TAB=...
- écrire en UNICODE

Tout ceci complique un peu les choses.
La fonction suivante (par vraiment optimisée mais ça marche) permet la modification comme souhaitée :
// Modification du fichier de désinstallation pour ajouter une liste de fichiers et dossiers
// sFichInst [in] : Fichier contenant l'installation à modifier
// sListFich [in] : Liste des fichiers à ajouter à la désinstallation (chaine ANSI séparateur RC)
// sListRep [in] : Liste des répertoires à ajouter à la désinstallation (chaine ANSI séparateur RC) [""]
//
Procedure ModifInst(sFichInst est une chaîne,sListFich est une chaîne ANSI,sListRep est une chaîne ANSI="")

sFich est une chaîne
sText est une chaîne UNICODE
sLstInst est un Buffer
i est un entier
sNew est un Buffer

POUR TOUTE chaîne sFich de sListFich SEPAREE PAR RC
sText+=[RC]+AnsiVersUnicode("EFF_FIC="+sFich)
FIN
POUR TOUTE chaîne sFich de sListRep SEPAREE PAR RC
sText+=[RC]+AnsiVersUnicode("EFF_REP="+ComplèteRep(sFich))
FIN

sLstInst=fChargeTexte(sFichInst)
i=Position(sLstInst,AnsiVersUnicode((RC)))
sNew=sLstInst[[1 À 2*i+2]]
sNew+=sText+AnsiVersUnicode(RC)+sLstInst[[2*i+3 À]]

fSauveBuffer(sFichInst,sNew)


Tiens nous au courant
A+

--
Francis MOREL
http://www.SoftProtect.fr
Miembro registrado
4.362 mensajes
Publicado el 22,abril 2020 - 11:50
CréeDirData.BAT
REM Crée le répertoire de données de l'application lors de l'installation
REM Remplacer D:\RepData par le répertoire souhaité
MD D:\RepData

SupDirData.BAT
REM Supprime le répertoire de données de l'application lors de la désinstallation
REM Remplacer D:\RepData par le répertoire souhaité
RD /S /Q D:\RepData

Avec ma solution

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
38 mensajes
Publicado el 23,abril 2020 - 16:18
Bonjour Francis et Bonjour Voroltinquo

J'ai du mal
Lol

j'y arrive pas dans les deux solutions

Voici le contexte :
J'ai créé un INSTAL personnel en reseau
Il me permet :
- De paramétrer ce que je veux
- d'enlever ce que je veux

je ne permets pas d'y paramétrer le répertoire des données (car modifiable lors d'une mise a jour)
Lors du premier lancement du programme un fenetre apparait et annonce entre autre
- Le répertoire d'installation
- Le répertoire des données (que je place par défaut dan le répertoire d'installation"

Mais je donne la possibilité de modifier le répertoire des données.

Evidemment, si le répertoire des données n'est pas changé, la suppression du logiciel supprime également les données.

Pour supprimer les données lorsque le répertoire de donnée a été modifié je créé le .BAT suivant par programmation
"rmdir " + ,sMonParam + "/s/q"
(SMonParam étant le chemin des fichiers de données)
Le .BAT est enregistré à coté de WDUNINST.EXE
Lorsque je double clic sur celui-ci cela fonctionne et supprime bien le répertoire des données
Par contre je trouve pas la syntaxe pour inclure la fonction dans le désinstallateur

Pouvez-vous m'expliquer et m'aider ?

Cordialement

Pascal Fournier
Publicado el 23,abril 2020 - 17:43
Bonjour,

Pour ma part, je n’utilise pas l’installateur de WD.
Bien que ce dernier a mérite être inclus à WD, il n’est pas assez complet selon moi.

Je lui préfère Install Créator 2 Pro https://www.clickteam.com/fr/install-creator-2 avec ce dernier il est possible, très simplement, de réaliser plusieurs versions d’installations d’un même logiciel (32 et 64 bits par exemple) et ce avec gestion de délivrance de codes d’installations/licences, de plus et il est possible d’intégrer un désinstallateur paramétrage.
Deux versions totalement en Français sont disponibles, avec ou sans pub (pour eux même), l’essayer c’est l’adopter...
A noter que je n’ai pas d’action chez eux.

Alain
Miembro registrado
4.362 mensajes
Publicado el 24,abril 2020 - 10:23
Pascal FOURNIER a écrit :
Par contre je trouve pas la syntaxe pour inclure la fonction dans le désinstallateur

Comme précisé plus haut, il faut passer par WDInst (je n'ai pas trouvé cette option dans l'installateur "intégré")
"Paramètre de l'installation/Paramètres du désinstalleur" Ligne de commande

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
38 mensajes
Publicado el 25,abril 2020 - 00:27
Probleme Réolu de la façon suivante :

Dans L'option du Désinstallteur de WDINSTALL j'ai mis :
<RepExeOuRepDonneesCommun>\MonFichier.BAT
une ligne s'écrit dans le fichier uninst.inf du Type : RUN EXE = Chemin mis dans l'option du désinstallteur (avec le nom du fichier .BAT)

J'avais dit que je créais une installation avec mise à jour en reseau (mais sans paramétrage des fichiers des données)
Dans le répertoire exe du poste Client le fichier WDUPDATE.INI me donne toutes les informations utiles

Lors de la première connexion, une fenètre de paramétrage apparait qui donne entre autres
- Le chemin de l'installation de référence
- Le chemin des données (proposée à coté de l'installation de référence mais modifiable)

en validant, je crée mon fichier .BAT avec la syntaxe suivante : rmdir \\Mon chemin des données/s/q

En supprimant l'installation de référence, le répertoire des données est supprimé

Merci à tous

Pascal Fournier