Как отменить/остановить процесс? (to professionals)


[ Комментарии ] [ Добавить комментарий ] [ Доска объявлений HackZone ]

Отправитель: XR, October 15, 1998, 17:53:51:

В ответ на: Как отменить/остановить процесс? (to professionals) (отправитель: ZaK, October 15, 1998, 17:43:49):

вот так
---------------
BOOL KillProcess(char* ModName)
{
HANDLE hProcessX;
HANDLE hSnapshot = NULL;
BOOL bRet = FALSE;
PROCESSENTRY32 pe32 = {0};
HANDLE hProcessSnap;
// Take a snapshot of all processes currently in the system.
//
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == (HANDLE)-1)
return FALSE;

// Fill in the size of the structure before using it.
pe32.dwSize = sizeof(PROCESSENTRY32);

// Walk the snapshot of the processes, and for each process, get

// information to display.
if (Process32First(hProcessSnap, &pe32)) {
BOOL bGotModule = FALSE;
MODULEENTRY32 me32 = {0};
PINFO pi = {0};
bRet = FALSE;
do {
bGotModule = GetProcessModule(pe32.th32ProcessID,
pe32.th32ModuleID, &me32, sizeof(MODULEENTRY32));
if (bGotModule) {
HANDLE hProcess;

// Get the actual priority class.

hProcess = OpenProcess (PROCESS_ALL_ACCESS,
FALSE, pe32.th32ProcessID);

pi.dwPriorityClass = GetPriorityClass (hProcess);

if( strcmp(me32.szModule,ModName)==NULL)
{
TerminateProcess(hProcess,0);
}
CloseHandle (hProcess);
}
}
while (Process32Next(hProcessSnap, &pe32));
}
else
bRet=FALSE; // could not walk the list of processes

// Do not forget to clean up the snapshot object.
CloseHandle (hProcessSnap);
return bRet;
}

---------------



Комментарии:


Цитировать сообщение


[ Комментарии ] [ Доска объявлений HackZone ]