PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Problème pour désinstaller un service Windows
Problème pour désinstaller un service Windows
Débuté par Arnaud G., 13 juin 2014 14:33 - 13 réponses
Membre enregistré
93 messages
Popularité : +1 (1 vote)
Posté le 13 juin 2014 - 14:33
Bonjour,

Je test la création d'un service Windows via Windev 19.
L'installation fonctionne bien mais pas la désinstallation.
La procédure de désinstallation (via WDuninstall.EXE sur dossier d'installation) n'indique pas d'erreur mais le dossier et le EXE ne sont pas supprimés.

Si je supprime l'EXE manuellement, Wndows 7 m'indique :
"Cette action ne peut être réalisé car le fichier est ouvert dans Audio Windows."

Si je retente de le supprimer après avoir désactiver le service Audio Windows, Windows 7 m'indique :
"Cette action ne peut être réalisé car le fichier est ouvert dans Client DHCP."

Avez-vous une idée pour avoir un uninstall propre ?
Merci d'avance

Arnaud G.
Membre enregistré
93 messages
Popularité : +1 (1 vote)
Posté le 13 juin 2014 - 17:07
Obliger de redémarrer la machine pour le supprimer normalement.... :/
Posté le 13 juin 2014 - 19:27
Bonjour Arnaud

est ce que betement ton service n'aurait pas été en train de fonctionner
quand tu as essayé de le désinstaller ?

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

NOUVEAU: WXShowroom.com est disponible : Montrez vos projets !
Plus d'information sur http://fabriceharari.com


On 6/13/2014 9:07 AM, Arnaud G. wrote:
> Obliger de redémarrer la machine pour le supprimer normalement.... :/
Membre enregistré
93 messages
Popularité : +1 (1 vote)
Posté le 14 juin 2014 - 12:34
Bonjour,

Non le service est arrêté avant la désinstallation... (du à une erreur dans l'application que je n'arrive pas à résoudre)
A vérifier plus tard... mais j'ose espérer que le désinstallateur arrête le service dans un premier temps.
Posté le 14 juin 2014 - 21:25
Bonjour Arnaud

Non le service est arrêté avant la désinstallation... (du à une erreur
dans l'application que je n'arrive pas à résoudre)


S'il est planté du à une erreur, rien ne dit qu'il soit ARRETE au sens
du système. Il est peut être bloqué en mémoire.

A vérifier plus tard... mais j'ose espérer que le désinstallateur arrête
le service dans un premier temps.


Pourquoi ca ? Si tu désinstalle un EXE normal, tu veux aussi que le
désinstallateur le supprime sauvagement de la mémoire alors qu'il est
en train de tourner ?

La personne qui installe et désinstalle des programmes et des services
est sensé être un administrateur du système, et donc arrêter les choses
proprement avant de désinstaller

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

NOUVEAU: WXShowroom.com est disponible : Montrez vos projets !
Plus d'information sur http://fabriceharari.com
Membre enregistré
93 messages
Popularité : +1 (1 vote)
Posté le 15 juin 2014 - 18:57
Bonjour Fabrice,

¤ bloqué en mémoire... oui peut être. Faudrait donc que je reteste lorsque mon service sera "stable"...

¤ normalement la désinstallation d'une application en cours demande l'arrêt pour poursuivre l'opération et je n'ai jamais arrêter manuellement un service (souvent un service du genre update auto) de Google, Adobe, serveur HFSQL (manta), WMware (dhcp, nat client), ...

Arnaud G.
Membre enregistré
93 messages
Popularité : +1 (1 vote)
Posté le 17 juin 2014 - 09:31
Bonjour,

Existe-t-il une méthode pour arrêter le processus avant/pendant la déinstallation ?
Membre enregistré
240 messages
Popularité : +3 (3 votes)
Posté le 17 juin 2014 - 09:47
Normalement la désinstallation tente d'arrêter le service à la manière de Windows, c'est à dire qu'il envoie une commande d'arrêt. Si le service ne répond pas, l'installateur s'en fout et supprime les fichiers restants. Ton exécutable peut être resté en mémoire cependant. Si ton service est bloqué, c'est qu'il a effectué une opération qui a entrainé un blocage : boucle infinie, erreur ou exception non interceptée qui aurait pu afficher une boite de dialogue, ou une connexion qui est effectuée mais qui ne donne pas de réponse, ou que sais-je...

Donc le mieux à faire :
- Bien vérifier les erreurs et traiter les exceptions pendant l'exécution du service, écrire dans le journal d'événements.
- Ne pas oublier de permettre au service de se temporiser (juste après son exécution, utiliser "ServiceTemporise").
- Eviter au maximum l'utilisation de fonctions qui pourraient afficher une boite de dialogue (donc interactif).
Membre enregistré
93 messages
Popularité : +1 (1 vote)
Posté le 22 juin 2014 - 16:10
Bonjour,

Après plusieurs tests, je constate toujours le même problème.
J'ai minimisé le code à :

// Dans la procédure d'exécution du service (appelé en boucle)
ServiceTemporise(1000)
ServiceEcritEvénementJournal("Hello !", ejInformation)

// Dans la procédure d'arrêt du service
ServiceEcritEvénementJournal("Arrêt du service", ejAvertissement)

Je retrouve bien mon service en exécution et lancement automatique dans "services.msc".
Je retrouve bien mes événements "Hello !" toutes les 10 secondes.
Lorsque je lance la désinstallation, le service s'arrête et disparait de "service.msc" et des "Programmes et fonctionnalités", j'ai bien l'événement "Arrêt du service".

Par contre, j'ai toujours l'exécutable dans le dossier d'installation qui ne pas supprimable (même avec l'utilitaire Unlocker)

:/
Membre enregistré
280 messages
Popularité : +22 (28 votes)
Posté le 23 juin 2014 - 05:22
Voir la fonction ServiceDésinstalle() !
http://doc.pcsoft.fr/?1000017098&lang=fr-FR&productversion=01F190056n

--
Olivier chez EasySoftSystem
Membre enregistré
93 messages
Popularité : +1 (1 vote)
Posté le 23 juin 2014 - 09:44
Bonjour,

Merci mais je ne cherche pas à désintaller par programmation...
Membre enregistré
89 messages
Popularité : +4 (4 votes)
Posté le 15 septembre 2014 - 18:51
Bonjour Arnaud,
je en sais pas si ca peut t'aider mais pour le message "...car le fichier est ouvert dans Audio Windows",
j'ai rencontré le même problème en voulant regénérer l'exe d'un service que j'ai créé.
La raison du blocage était toute un peu bête : l'Observateur d'événements de Windows bloquait mon exe.
En le fermant j'ai pu supprimer le .exe.
Posté le 18 mars 2017 - 09:57
Je confirmes pour le même problème : Fermeture de l'observateur d’événement ... et problème résolu
Posté le 31 juillet 2018 - 15:39
Exactement pareil pour moi ...