Page 1 sur 1

[R] Registre Uninstall

Posté : dim. 06 mai 2012 16:52
par silvere
Bonjour,
Voila, j'ai fait un logiciel et j'aimerais que l'utilisateur puisse le désinstaller en allant dans Demander > panneau de configuration > ajouter ou supprimer des programmes.
Je savais que sa se trouvé dans le registre, puis j'ai fait un petit recherche et j'ai vu qu'il fallait créé un clé dans : "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Nomduprogramme"
mais voila je sais pas comment me servir de regwrite et j'ai pas envie de faire de bêtise dans mon registre.
Merci d'avance

Re: [..] Registre Uninstall

Posté : dim. 06 mai 2012 18:38
par mikell
Pour un script compilé (attention c'est pour XP) :

Code : Tout sélectionner

RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Nomduprogramme")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Nomduprogramme", "UninstallString", "REG_SZ", @ScriptFullPath & " delete")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Nomduprogramme", "DisplayName", "REG_SZ", "Nomduprogramme")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Nomduprogramme", "DisplayIcon", "REG_SZ", @ScriptFullPath)
Dans cet exemple, la clé lance ton programme avec le paramètre 'delete' : "Nomduprogramme.exe delete"
ça te permet d'intégrer à ton programme un test et une fonction d'autodestruction qui se déclenchera si le programme est lancé avec ce paramètre, par exemple
► Afficher le texte

Re: [..] Registre Uninstall

Posté : dim. 06 mai 2012 18:58
par silvere
Merci, t'es énorme.
Mais tu dit que c'est juste pour xp ce qui veut dire que c'est différent pour vista a W7 ?

Re: [..] Registre Uninstall

Posté : dim. 06 mai 2012 19:09
par mikell
Pas forcément, les clés de registre sont peut-être les mêmes
La fonction d'autodestruction peut ne pas fonctionner sous W7, mais une petite recherche sur le forum US avec le mot 'selfdelete' te permettra de la trouver facilement
Mais le test est facile :
Ce que j'ai mis dans le spoiler, tu le compiles et tu mets l'exe sur le bureau
Ensuite tu mets tes clés de registre en les adaptant au chemin et au nom de l'exe
Enfin tu vas dans "ajout-suppression de programmes" et tu supprimes le prog
Tu verras bien si ça marche ^^

Un détail, n'oublie pas lors du test de détruire aussi les clés de registre

Code : Tout sélectionner

If $CmdLine[1] = "delete" Then 
   RegDelete ... etc
   _SelfDelete()    

Re: [..] Registre Uninstall

Posté : dim. 06 mai 2012 19:18
par silvere
le problème c'est que je suis sous Ubuntu :lol:

Re: [..] Registre Uninstall

Posté : dim. 06 mai 2012 19:21
par mikell
Connais pas... faut tester, mais je t'ai mis tous les éléments nécessaires :roll:

Re: [..] Registre Uninstall

Posté : dim. 06 mai 2012 19:34
par silvere
Oui, oui, Merci j'ai trouvé encore mieux que ce que je chercher :
► Afficher le texte
Ce code supprime le dossier ou se trouve l’exécutable attention a ne pas le placé dans n'importe quel dossier !

Re: [R] Registre Uninstall

Posté : dim. 06 mai 2012 22:19
par Tlem
Pour faire ce genre de manipulation, il existe des outils adaptés.

Pour ce faire, vous devez utiliser un installeur tel que "Inno Setup" ou encore "NSIS".

Si c'est pour du bricolage interne, ce que vous faites ira très bien. Mais si vous comptez diffuser un programme, je vous conseil une solution plus "propre". ^^

Re: [R] Registre Uninstall

Posté : dim. 06 mai 2012 22:26
par silvere
Tlem a écrit :Pour faire ce genre de manipulation, il existe des outils adaptés.

Pour ce faire, vous devez utiliser un installeur tel que "Inno Setup" ou encore "NSIS".

Si c'est pour du bricolage interne, ce que vous faites ira très bien. Mais si vous comptez diffuser un programme, je vous conseil une solution plus "propre". ^^
Oui, on me l'a déjà a dit mais je préfère pouvoir tout personnalisé :P.
Mais je vois voi pas en quoi se scripte est "sale" :lol:

Re: [R] Registre Uninstall

Posté : dim. 06 mai 2012 22:43
par Tlem
Un installeur standard et généralement connu et rassure.
Un installeur est tout à fait personnalisable, tout en gardant un aspect "pro".
Un installeur est prévu pour faire ce genre de choses et permet que votre script ne soit pas dépendant de la partie installation.
Un installeur permet de faire des choses plus simplement (l'adjonction de fichiers sans toucher le code, le choix des OS supportés, les raccourcis bureau, etc ...).

bref, faites comme vous le sentez, mais regardez ce qui ce fait généralement pour ce type d'application. :mrgreen:

PS: Je n'ai pas dit que votre script est sale, j'ai simplement souligné que la méthode n'est pas très "propre". Il y à une nuance.
En faisant comme cela, votre script est dépendant de l'architecture de la plateforme. Si vous voulez faire les choses de manière plus complète, vous devez alors gérer vous même les incompatibilités d'OS, les versions, les chemins, les fichiers, etc ... directement dans le code, alors qu'avec un installeur (tel que Inno Setup par exemple) ce ne sont que des cases à cocher.

Mais bon, je vais arrêter là d'essayer de vous convaincre du bienfondé de mes propos, car en la circonstance, les gouts et les couleurs n'ont pas lieu d'être discutés. ;)