Definir si un prog est deja lancé en vérifiant les process en cour

Signaler
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
6 janvier 2009
-
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
-
Bonjour,

Je voudrais verifier si certain programme son lancé en verifiant les process en cour.
Je n'utilise pas findwindow car certain de ces prgrammes n'ont pas de fenetre.
J'arrive a le faire en vb mais en c++ c un véritable enfer.

Pourriez vous me donner des indications SVP .... Merci

12 réponses

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,
EnumProcesses(...).
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
6 janvier 2009

Merci de ta réponse.

Oui j'ai vu sa sur ce site : http://www.cppfrance.com/forum.aspx?Article=15157

Mais j'arrive pas bien a comprendre la source.

Si tu as un peut de temps pourrais tu m'expliquer les Tres grandes Ligne de ce code (je te demande pas un cour je te rassure)

Encore merci pour tes indications.
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,

BOOL EnumProcesses(
DWORD* lpidProcess,
DWORD cb,
DWORD* cbNeeded
);

Parameters:
lpidProcess
[out] Pointer to an array that receives the list of process identifiers.
cb
[in] Size of the lpidProcess array, in bytes.
cbNeeded
[out] Number of bytes returned in the lpidProcess array.

Suffit de mettre ce qu'il faut en param.
1ere param: pointeur sur tableau de DWORD (vide).
2eme param: taille du tableau pointée dans le 1er param.
3eme param: nombre d'octet ecrit dans le tableau. Tu le divise donc par sizeof(DWORD) pour savoir combien de processus la fonction a trouvé.

c'est tout.
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
6 janvier 2009

Un grand merci a toi

@+
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
6 janvier 2009

Re ........ :|

Ca fait 4h00 que je cherche et j'y arrive po :(

en fait de mon exe je lance x.exe et j'aimerais savoir si c x.exe est deja lancé dans les process.

Malgres tes explications et les autres articles sur ce site je reste completement a la rue.

Connaiterais tu un site une source tres detaillée pour que je comprenne.

Merci de l'attention que tu as apporté a mes questions.
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
L'exemple http://www.cppfrance.com/forum.aspx?Article=15157 fait tout ce que tu veux: Il liste les processus, et trouve leur noms. Le code fait 20 lignes.

Bon ben on reprend alors, une derniere fois:
je vais me contenter de te decrire l'exemple (qui est tiré de MSDN, donc fiable):

1) on trouve la liste de tout les processus avec EnumProcesses(...)
2) Pour chaque processus qu'on trouve, on obtient un HANLDE grace a OpenProcess(...). Ensuite on trouve le HMODULE du processus avec EnumProcessModules(...).
Une fois que tu as le HANDLE et le HMODULE d'un processus, tu trouve son nom grace a GetModuleBaseName(...).
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
6 janvier 2009

ok merci excuse mon ignorance

GuitouleFoux ......
Le secret du sage est de briller dans l'ombre
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Pas de probleme.
Si tu as d'autres questions, n'hesites pas.
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
6 janvier 2009

Merci pour ton indulgence. (j'ai enfin compris ce code)

J'ai peur d'abuser ........ aller j'ose .........
La bibliotheque psapi.h n'existe pas sur ma machine.
J'ai seulement psapi.dll mais j'arrive pas a l'utiliser.
J'utilise dev C++ (je vais essayer de telecharger cet librairie sur internet.)

GuitouleFoux ......
Le secret du sage est de briller dans l'ombre
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,
J'ai fait des zips avec tout les header et lib de la SDK.
psapi.h et psapi.lib devraient y etre.
http://betouchi.free.fr/utile/
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
6 janvier 2009

Merci,

Et je presume qu'une fois le programme compilé, il faudra psapi.dll pour qu'il fonctionne.
Je pense que j'ai tous les outils merci et bonne nuit.

GuitouleFoux ......
Le secret du sage est de briller dans l'ombre
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,
Tu inclus psapi.h, tu link psapi.lib, et c'est tout ce que tu as a faire pour utiliser les fonctions EnumProcesses(...) et compagnie.
Psapi.dll est dans windows, pas besoin d'y toucher.