Trouver le pid d'un processus depuis son nom (C++) [Résolu]

tekila_bandita 255 Messages postés mercredi 15 juin 2005Date d'inscription 15 mars 2007 Dernière intervention - 15 mars 2007 à 13:13 - Dernière réponse : cs_magma 198 Messages postés vendredi 4 avril 2003Date d'inscription 18 mars 2011 Dernière intervention
- 15 mars 2007 à 19:05
Bonjour !

Donc voila, cela fait un moment que je cherche mais je n'y arrive pas...
Quelqu'un aurait-il une fonction pour trouver le pid d'un processus à partir de son nom sous win32...?

Merci beaucoup!

Il était une fois, tralalala.. .
Afficher la suite 

2 réponses

Répondre au sujet
cs_magma 198 Messages postés vendredi 4 avril 2003Date d'inscription 18 mars 2011 Dernière intervention - 15 mars 2007 à 19:05
+3
Utile
#include <windows.h>
#include <tlhelp32.h>  //th32.lib ou libth32.a
#include <stdio.h>



//---------------------------------------------------
DWORD GetPidByName(char *szProcName)
{
  DWORD dwPID = 0; 
  PROCESSENTRY32 pe = {sizeof(PROCESSENTRY32)};
  HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);



  if(hSnap != INVALID_HANDLE_VALUE)
  {
    if(Process32First(hSnap, &pe))
    {
      do
      {
        if(strcmpi(pe.szExeFile, szProcName) == 0)
        {
          dwPID = pe.th32ProcessID;
          break;
        }   
      }
      while(Process32Next(hSnap, &pe));
    }
    CloseHandle(hSnap);
  }
  return dwPID;
}



//---------------------------------------------------
int main(void)
{
  printf("PID = %ld\n", GetPidByName("explorer.exe"));
  return 0;
}
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_magma
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 15 mars 2007 à 17:29
0
Utile
Salut,
Tu peux énumérer tous les processus en utilisant les fonctions suivates:
CreateToolhelp32Snapshot()
Process32First()
Process32Next() <- Dans une boucle.
Le membre szExeFile de la structure  PROCESSENTRY32 contiendra le nom de l'exécutable. Si le nom correspond à celui recherché alors on récupère le PID dans le membre th32ProcessID.
Commenter la réponse de racpp

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.