Instances de programme

Résolu
probo25 Messages postés 6 Date d'inscription mardi 26 octobre 2004 Statut Membre Dernière intervention 22 février 2016 - 31 mai 2010 à 15:52
probo25 Messages postés 6 Date d'inscription mardi 26 octobre 2004 Statut Membre Dernière intervention 22 février 2016 - 1 juin 2010 à 10:51
J'ai une application tournant sous XP PRO et developpée en Delphi 6 à partir de laquelle je peux démarrer d'autres applications (Word, Internet explorer, Excel..) comment puis je connaitre celles qui sont déjà ouvertes, y a t'il une trace dans la base de registre ou ailleurs? J'ai essayé avec FindWindow(), ça n'a pas marché.
En écrivant dans la base de registre lors de l'ouverture d'une application je ne sais pas quand celle ci est refermée.
Merci pour votre aide.

2 réponses

zwyx Messages postés 146 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 mars 2016
1 juin 2010 à 10:15
Salut,

Je ne saurais t'aider sur la base de registre ou la gestion des processus, mais voici une idée qui pourrait résoudre ton problème.

Tu déclares un type énuméré contenant les différentes applications exécutables:
TAutresApplications = (eWord, eIE, eExcel);


Tu déclares un champ, privé dans ta classe, ensemble de cette énuméré:
FApplicationsActives = set of TAutresApplications;


Ensuite, quand tu lances Word, tu ajoutes l'élément à ton ensemble:
FApplicationsActives := FApplicationsActives + [eWord];
Biensûr, tu le retires quand Word est fermé.

Enfin, quand tu veux savoir si Word a été lancé, tu testes:
if eWord in FApplicationsActives then


Bon courage.
3
probo25 Messages postés 6 Date d'inscription mardi 26 octobre 2004 Statut Membre Dernière intervention 22 février 2016
1 juin 2010 à 10:51
Merci pour l'idée, mais si, par exemple word est déjà ouvert lorsque je lance mon application rien ne me l'indique et en plus je n'ai pas de moyen de savoir si word a été fermé il me semble.

Merci encore
0
Rejoignez-nous