Ciao ragazzi, io per terminare processi in C++ uso il seguente metodo:

incude, spero di non essermene dimenticato qualcuno
codice:
#include <windows.h>
#include <string>
#include <sstream>
#include <tlhelp32.h>
#include <psapi.h>
"Sniffa" i processi correnti.

codice:
BOOL SniffProcess(char * ProcessToSniff)
{
DWORD PiDProcess;
HANDLE hProcess = NULL;
PROCESSENTRY32 nProcess = {0};
PPROCESS_MEMORY_COUNTERS mProcess;
DWORD dProcess;
string s_NomeProcesso;
string s_ProcessToSniff;

s_ProcessToSniff.assign(ProcessToSniff);
    
hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hProcess != INVALID_HANDLE_VALUE) 
    {
    nProcess.dwSize = sizeof(PROCESSENTRY32);
    while(Process32Next(hProcess, &nProcess))
        {
        PiDProcess = nProcess.th32ProcessID;
        s_NomeProcesso.assign(nProcess.szExeFile);
        
        s_NomeProcesso = KillCapital(s_NomeProcesso);
        s_ProcessToSniff = KillCapital(s_ProcessToSniff);
        
        if(s_NomeProcesso == s_ProcessToSniff){
            //if(MessageBox(NULL,s_NomeProcesso.c_str(),"Terminare?",MB_ICONQUESTION|MB_YESNO)  == IDYES)
            KillProcess(PiDProcess, DELETE); return TRUE;}
        }
        
    }


return FALSE;
}
questa funzione riduce a minuscoli i caratteri della stringa del nome del processo da terminare e di quello sniffato, in modo che se chiamo
SniffProcess(Firefox.exe); e il processo è firefox.exe me lo termina comunque

codice:
string KillCapital(string str)
{      
for(int x = 0; x <= str.size()-1; x++)
if((str.at(x) >= 'A') && (str.at(x) <= 'Z'))
str.at(x) += 32;
return str;
}
infine il DISTRUTTURE di processi

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;
}
Ecco questo è il mio problema: se per esempio voglio terminare il processo di un'applicazione (poichè per svolgere ruoli sepecifici preferisco eseguire dei processi invece di creare tread (non sono ancora capace e penso che non sia ancora giunto il momento di imparare) ) e l'applicazione da terminare è stata rinominata es. da Firefox.exe a ciao.exe, avete qualche consiglio per terminare il processo? forse controllare la memoria che occupano, anche se sarebbe meglio analizzare il contenuto.... grazie in anticipo