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
A voir également:

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 14
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
Rejoignez-nous