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!!!