Bonjour,
Quelle méthode dois je utiliser pour communiquer entre 2 .exe ?
Mon contexte:
-2 applications MFC A & B
-j'aimerais que l'application A envoi un message à l'application B pour lui demander de s'arrêter (proprement...)
-l'application B doit donc scruter ce genre de message afin de déclencher sa fermeture...
-j'utilise actuellement le code ci-dessous dans l'application A afin de déclencher un traitement quand l'application B se termine, mais j'aimerais "précipiter" cette terminaison
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
// code de l'application 'A'
bool CUpdaterApp::Wait()
{
    HANDLE hSnapShot;
    PROCESSENTRY32 uProcess;
    BOOL r;
    short PID = 0;
    hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
    uProcess.dwSize = (DWORD) sizeof(PROCESSENTRY32);
    r = Process32First(hSnapShot, &uProcess);
    do 
    {
        if ( strstr(uProcess.szExeFile, "B.exe") ) // on compare au nom de l'executable
            PID = (short) uProcess.th32ProcessID;
        r = Process32Next(hSnapShot, &uProcess);
    }
    while ( r );
    CloseHandle(hSnapShot);
    if ( PID == 0)  return false;
    HANDLE hTemp;
    hTemp = OpenProcess(PROCESS_ALL_ACCESS, false, (DWORD) PID);
    WaitForSingleObject( hTemp, INFINITE );
 
    DWORD retour;
    GetExitCodeProcess(hTemp,&retour);
 
    CloseHandle( hTemp );
    return(true);
}
j'espère avoir été clair...