Bonjour,
Je cherche un moyen de détecter des processus en cours d’exécution qui pourrait perturber le bon déroulement de l'installation. J'ai bien compris qu'il fallait utiliser des "Mutex" par contre je ne bite rien de ce qu'il faut faire pour parvenir à :
"Si processus MonProcessus01 ou MonProcessus02 alors demander à l'utilisateur de les fermer"
Sur la documentation officielle ça parle de Delphi, C ou VB, je ne sais même pas pourquoi et AppMutex = MonProcessus dans [Setup] n'a aucun effet sans compter que je peux en mettre qu'un seul. Je ne vois pas non plus comment utiliser la procédure CreateMutex, la doc indiquant seulement que ça sert à créer des Mutex . . .
Habituellement je trouve ce que je veux dans cette documentation mais là je sèche.
J'ai également trouvé ceci sur un forum :
Mais j'ai le droit à 2 messages d'erreurs par ligne à l'exécution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 var HandleMutex : THandle; function IsRunning : Boolean; begin result := true; SetLastError(NO_ERROR); if OpenMutex(MUTEX_ALL_ACCESS,false,pChar('MonMtx'))<>0 then exit; HandleMutex := CreateMutex(Nil,true,pChar('MonMtx')); if HandleMutex = 0 then ShowMessage('Erreur de Mutex') else result := false; end; ... procedure TForm1.FormDestroy(Sender: TObject); begin if HandleMutex <> 0 then ReleaseMutex(HandleMutex); end; Utilisation : procedure TForm1.FormCreate(Sender: TObject); begin if IsRunning then [désactiver l'option "mise à jour"]; end;
Merci d'avance à tout ceux qui pourront m'apporter leurs lumières. Un bel exemple concret me ferait grand plaisir
Partager