Cambia tambien esto
Código:
bool TerminateProcess(char* FileName)
Código:
bool TerminateProcessW(WCHAR* FileName)
Te pongo la versión completa Unicode:
Código:
#include <tlhelp32.h>
// Termina los procesos conociendo el nombre del exe
bool TerminateProcessW(WCHAR* FileName)
{
DWORD Result = 0;
HANDLE Process = 0;
PROCESSENTRY32W proc = { sizeof(proc) };
HANDLE hSysSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hSysSnapshot != INVALID_HANDLE_VALUE && Process32FirstW(hSysSnapshot, &proc)){
do{
if(!_wcsicmp(proc.szExeFile, FileName)){
Result = proc.th32ProcessID;
if(Result)
Process = OpenProcess(PROCESS_ALL_ACCESS, false, Result);
if(Process){
Result = TerminateProcess(Process, 0);
CloseHandle(Process);
}
}
}while(Process32NextW(hSysSnapshot, &proc));
}
CloseHandle(hSysSnapshot);
return (bool)Result;
}
Saludos.