quelqu'un pourrait-il me dire comment un processus peut-il connaitre son propre PID....
en effet, grâce au code donné, je veux que mon processus puisse envoyer un certain message à un autre processus, autre que lui, alors même que tous ses processus sont des mêmes instances d'un code et qu'ils portent tous le même nom en s'exécutant...........
HANDLE hSnapShot;
PROCESSENTRY32 uProcess;
bool r;
short PID = 0;
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
uProcess.dwSize = (DWORD) sizeof(PROCESSENTRY32);
r = Process32First(hSnapShot, &uProcess);//on récupére le 1er processus
do
{
if (strstr(uProcess.szExeFile,"monProcessus") ) //on a trouvé le processus
{
PID = (short) uProcess.th32ProcessID; //on récupére le PID du processus
// On retrouve le HWND correspondant au processus trouvé
HWND hWindowRecherche = NULL;
DWORD test_pid,test_thread_id;
HWND hWindow = ::FindWindow(NULL,NULL);
do
{
if(::GetParent(hWindow) == NULL)
{
test_thread_id = ::GetWindowThreadProcessId(hWindow,&test_pid);
if(test_pid == PID)
{
hWindowRecherche = hWindow;
if ( PID != 0 )
{
=======> "j'envoie coucou à mon processus"
}
}
}
hWindow = ::GetWindow(hWindow, GW_HWNDNEXT);
} while (hWindow);
}
r = Process32Next(hSnapShot, &uProcess); //on passe au processus suivant dans la liste
} while ( r );
Partager