![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Привет, люди подскажите, как приостановить и продолжить работу какого-либо процесса, н-р, так как это делают антивирусы и брандмауэры ???
|
|
#2
|
||||
|
||||
|
Привет, вот нашел:
Код:
/*///////////////////////////////////////
//Suspend/Resume process by pID
*////////////////////////////////////////
BOOL SuspendProcess(DWORD ProcessId, bool Suspend)
{
HANDLE snHandle = NULL;
BOOL rvBool = FALSE;
THREADENTRY32 te32 = {0};
snHandle = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
if (snHandle == INVALID_HANDLE_VALUE) return (FALSE);
te32.dwSize = sizeof(THREADENTRY32);
if (Thread32First(snHandle, &te32))
{
do
{
if (te32.th32OwnerProcessID == ProcessId)
{
HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME, FALSE, te32.th32ThreadID);
if (!Suspend)
{
ResumeThread(hThread);
}
else
{
SuspendThread(hThread);
}
CloseHandle(hThread);
}
}
while (Thread32Next(snHandle, &te32));
rvBool = TRUE;
}
else
rvBool = FALSE;
CloseHandle (snHandle);
return (rvBool);
} |