PID et HANDLE

Résolu
CleFac
Messages postés
11
Date d'inscription
mardi 18 octobre 2005
Statut
Membre
Dernière intervention
9 avril 2010
- 30 août 2006 à 13:05
khadidjamina
Messages postés
8
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
13 février 2010
- 13 avril 2008 à 12:18
Bonjour,

J'aimerai savoir comment récupérer l'HANDLE d'une fenêtre quand on connais son PID.
Merci d'avance

5 réponses

vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
12
30 août 2006 à 13:50
Un PID c'est pour un processus, or un processus peut avoir plusieurs fenêtres, donc ca peut poser problème.
Sinon tu utiliset EnumWindows, et dans la EnumWindowsProc tu compare le pid:

BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
  DWORD dwProcessID;
  GetWindowThreadProcessId(hwnd, &dwProcessID);
  if(dwProcessID == pid)
  {
    // Cette fenêtre appartient au processus
    return FALSE;
  }
  return TRUE;
}

_____________________________________
Un éditeur de ressources gratuit pour Windows
3
wxccxw
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

30 août 2006 à 13:28
HANDLE HWND = FindWindow(NULL,"titre de la fentre");

ou sinon tu recupere son PID et en plus ta son HANDLE ^^ :
le Handle de la fenetre est HPROC, LE PID est PID

HANDLE Hproc;
DWORD PID;
 PROCESSENTRY32 pe32 = {0};
   
    HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hProcessSnap == (HANDLE)-1) return 0;

    pe32.dwSize = sizeof(PROCESSENTRY32);

    BOOL bContinue = Process32First(hProcessSnap, &pe32);
   
    while (bContinue)
    {

            if(!strcmp("NOM.EXE",pe32.szExeFile)) {
                PID=pe32.th32ProcessID;
                MessageBox(DLG,"NOM.exe Found !","Test",0);
                              break;
         
    }
       
        bContinue = Process32Next(hProcessSnap, &pe32);
    }

Hproc= OpenProcess(PROCESS_ALL_ACCESS,NULL,(DWORD)PID); // On recupere le HANDLE
0
CleFac
Messages postés
11
Date d'inscription
mardi 18 octobre 2005
Statut
Membre
Dernière intervention
9 avril 2010

30 août 2006 à 14:15
Merci pour ces solutions. Je n'avais que la solution avec EnumWindows.
Mais je voulais savoir s'il n'y avait pas une API pour sa.
0
wxccxw
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

1 sept. 2006 à 15:53
j'avais compris que tu n'avais pas le PID
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
khadidjamina
Messages postés
8
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
13 février 2010

13 avril 2008 à 12:18
comment savoir le nom de la fenetre qui a le focus en c#
thanks
0