#pragma hdrstop #pragma argsused #pragma comment (lib, "psapi.lib") #include #include #include "windows.h" #include #include DWORD GetProcessIdByName(char* lpProcessName) { // Obtain a list of the process. DWORD aProcesses[1024], cbNeeded, cProcesses; unsigned int i; if (!EnumProcesses (aProcesses, sizeof(aProcesses), &cbNeeded )) return 0; cProcesses = cbNeeded / sizeof(DWORD); char szProcessName[MAX_PATH] = "unknown"; for (i = 0; i < cProcesses; i++) { HANDLE hProcess = OpenProcess (PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, aProcesses[i]); // Получить имя процесса. if ( hProcess ) { HMODULE hMod; DWORD cbNeeded; if ( EnumProcessModules (hProcess, &hMod, sizeof(hMod), &cbNeeded) ) { GetModuleBaseName (hProcess, hMod, szProcessName, sizeof(szProcessName)); } } if(!lstrcmpi (szProcessName, lpProcessName)) { CloseHandle (hProcess); return aProcesses[i]; } CloseHandle (hProcess); } return NULL; } void Kill(char *szxProcName) { HANDLE hProcess; // Get the process ID by name DWORD dwProcID = GetProcessIdByName(szxProcName); // Открываем процесс для его закрытия hProcess = OpenProcess( PROCESS_TERMINATE, FALSE, dwProcID ); if ( (INVALID_HANDLE_VALUE == hProcess) || (NULL == hProcess) ) printf( "OpenProcess() failed, err = %lu\n", GetLastError() ); // Ошибка else { // kill process if ( ! TerminateProcess( hProcess, (DWORD) -1 ) ) printf( "TerminateProcess() failed, err = %lu\n", GetLastError() );// Ошибка else puts( "killed." ); // Закрываем дескриптор CloseHandle( hProcess ); } } void main() { Kill("notepad++.exe"); system("pause"); } // Coded by Appo //