begin process at 2012 05 30 06:35:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

System

 > 

Recupérér Handle de d'un processus


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Recupérér Handle de d'un processus

dimanche 8 avril 2007 à 12:08:39 | Recupérér Handle de d'un processus

kiki67100

Bonjour

je voudrais recuperer le handle d'un processus active ex :explorer.exe

jai deja un code similaire mais il trouve que le PID a partir du processus

#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", GetByName("explorer.exe"));
  system("pause>nul");
  return 0;
}

Pouriez-vous maider

Kevin

dimanche 8 avril 2007 à 12:31:27 | Re : Recupérér Handle de d'un processus

racpp

Administrateur CodeS-SourceS
Salut,
Tu peux utiliser OpenProcess() qui récupère le HANDLE d'un processus à partir de son PID.
dimanche 8 avril 2007 à 12:57:30 | Re : Recupérér Handle de d'un processus

kiki67100

Merci j'essaye et je te tiens au courant
aurais tu un exemple d'utilisation de cette commande stp?


Kevin

dimanche 8 avril 2007 à 13:03:29 | Re : Recupérér Handle de d'un processus

racpp

Administrateur CodeS-SourceS
HANDLE hProcess=OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,0,dwPID);
//...
CloseHandle(hProcess);
dimanche 8 avril 2007 à 13:06:19 | Re : Recupérér Handle de d'un processus

kiki67100

Merci pour ta reponse tres rapide mais je suis vraiment debutant comment puis-je fait pour trouver le HANDLE DE EXPLORER.exe

Merci
dimanche 8 avril 2007 à 13:31:18 | Re : Recupérér Handle de d'un processus

racpp

Administrateur CodeS-SourceS
La fonction GetPidByName() mentionnée dans ton code permet de trouver le PID d'un processus à partir de son nom. Elle te retournera le PID correspondant au nom de processus donné en paramètre. OpenProcess() retrouve le HANDLE depuis le PID:
DWORD dwPID=GetPidByName("explorer.exe");
HANDLE hProcess=OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0,dwPID);
//...
CloseHandle(hProcess);

dimanche 8 avril 2007 à 14:40:58 | Re : Recupérér Handle de d'un processus

kiki67100

Merci pour tes reponse tres rapide mais je suis vraiment debutant le code vient pas de moi.
le but rechercher serait de cacher l'explorateur (explorer.exe) puis l'afficher et aussi modifier les titre des fenetre de msn ,iexplorer,ect... via le processus. avec cette commande ShowWindow(hWnd, SW_SHOW);
moi voila je susi bloquer je narrive pas a utiliser la commande OpenProcess

merci

Kevin
dimanche 8 avril 2007 à 14:44:45 | Re : Recupérér Handle de d'un processus

kiki67100

Pour avoir le HANDLE du processus apres pour faire ceci
HWND hWnd = FindWindow(0,"notepad.exe");//ceci ne marche pas
SetWindowText(hWnd, "lenouveautitre.");//le nouveau titre


dimanche 8 avril 2007 à 16:08:52 | Re : Recupérér Handle de d'un processus

racpp

Administrateur CodeS-SourceS
FindWindow() prend le texte affiché sur la barre de titre comme 2ème paramètre. On ne peut pas lui passer le nom du processus. Il est préférable d'utiliser le 1er paramètre qui est le nom de la classe de fenêtre:
HWND hwndNotepad=FindWindow("notepad",0);
SetWindowText(hwndNotepad,"Nouveau titre");

Pour une fenêtre de l'explorateur, le nom de la classe est CabinetWClass.

dimanche 8 avril 2007 à 17:49:35 | Re : Recupérér Handle de d'un processus

kiki67100

Je me suis mal expliquer dsl

jaimerais lister les fenetre utiliser par un processus exemple msn Messenger
puis recuperer les HANDLE des fenetre pour les modifier ect...
On peut utiliser la commande FindWindow(0,"*MSN"): un truc dans le genre qui permet de prendre tout les fentre commancent par MSN ?


Kevin


1 2

Cette discussion est classée dans : handle, include, processus, pe, hsnap


Répondre à ce message

Sujets en rapport avec ce message

connaitre le pid à partir du handle d'un processus [ par cosmobob ] comment récuperer le pid d'un processus lancé avec shellexecute ? (avec createprocess j'ai fait c'est plus simple)j'ai utilisé shellexecutex, et avec Processus & Handle [ par ro0tsman ] Bonjour all,je voudrai savoir s'il est possible de trouver le handle d'une fenêtre à partir de son processus (id) ?Sinon de manière générale, comment Dossier [ par angsthase ] Bonjour à tous! Voici un petit bout de programme que j'ai recupérer sur 'msdn' et  que je n'arrive pas à faire fonctionner. C'est dû au paramètre qui Sockets probleme avec Handle [ par Sens0r ] Bonjour, j'ai un petit problème en ce qui concerne les sokets. Je veux "construire" un programme qui me permet d'utiliser les fichiers etc des Ordina Info sur les include [ par jose12 ] Bonjour, contexte : Je ne suis pas développeur mais admin réseau. Je connais un peu le VB et divers langage Web, et j'ai une vision très très succint ouvrir plusieur fichierx textes [ par seignseifer ] Bonjour, alors je voudrais ouvrir plusieurs fichier textes pour mon programme. J'ai un peu avance mais je bloque sur quelquechose. Je fais une boucle Question sur les processus [ par Mamelook ] Bonjour, Voila, Je me demandais comment on peut obtenir l'adresse d'un programme qui est en court d'execution (en fouillant dans les processus), c'est lecture depuis camera avec dc1394 [ par braf78 ] mon probleme quand je compile le grogramme il connait pas fonction de bibliotheque comme (dc1394_cameracapture camera; raw1394handle_t handle; n Processus en cours d'execution? Psapi.lib et Psapi.h? `EnumProcesses@12` & `GetModuleBaseNameA@16` ? [ par wizard512 ] Bonjour, J'essaie en vain de compiler un petit bout de code me permettant de vérifier si telle ou telle processus et bien en cour d'execution. Mais j' Récupérer le handle d'une fenêtre par survol [ par sunvi ] Bonjour, je veux récupérer le handle d'un fenêtre par survol, voilà le code que j'ai écrit,enfin, j'ai modifié un code de quelqu'un d'autre pour que ç


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales