Ciao ragazzi, premetto, spero di aver trovato un titolo apppropriato e che questa discussione non sia considerata OT.
Comunque, io ho sviluppato un semplice programma che trova hProc da un HWND,
codice:
DWORD dwPiD ;
GetWindowThreadProcessId(
  GetForegroundWindow(),
   &dwPiD
);
e trova l'HWND con GetForegroundWindow().
Poi uccide gentilmente il processo....molto utile se devo terminare giochi (senza dover fare menu....esci....etc....) oppure processi che fanno spuntare MessageBox()

codice:
BOOL KillProcess(DWORD dwProcessId, UINT uExitCode)
{
    DWORD dwDesiredAccess = PROCESS_TERMINATE;
    BOOL  bInheritHandle  = FALSE;
    HANDLE hProcess = OpenProcess(dwDesiredAccess, bInheritHandle, dwProcessId);
    if (hProcess == NULL)
        return FALSE;

    BOOL result = TerminateProcess(hProcess, uExitCode);

    CloseHandle(hProcess);

    return result;
}
La domanda è:
Prima per caso ho provato a terminare kaspersky antivirus con questo metodo.....e MAGIA! non è successo nulla!!! ......come è possibile una cosa dal genere??? ogni finestra dovrebbe avere un HWND, compresa quella di Kaspersky!
allora ho pensato: che per caso abbiano utilizzato un metodo inventato da loro per creare finestre???? proprio per difendersi dai virus? non capisco, mi sembra un fatto impossibile!!!