Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.16;
Скачать: CL | DM;

Вниз

Подскажите как усыпить процес   Найти похожие ветки 

 
Voyager ©   (2003-06-03 16:36) [0]

Наподоби SuspendThread для потоков


 
Digitman ©   (2003-06-03 16:46) [1]

"усыпляй" все потоки процесса


 
Reindeer Moss Eater   (2003-06-03 16:56) [2]

Процессы в Windows ничего не делают, они "существуют". Поэтому усыпить их нельзя.


 
Voyager ©   (2003-06-03 17:13) [3]

А как получить все потоки процесса если известен сам процесс?


 
Digitman ©   (2003-06-03 17:25) [4]

в общем случае - никак) ... в любом случае snapshot будет ! пока "усыпляешь" найденные, другие могут стартовать


 
Voyager ©   (2003-06-03 17:44) [5]

А если усыпить только главный поток?


 
Юрий Зотов ©   (2003-06-03 18:21) [6]

> Voyager © (03.06.03 17:44)

То другие (если они есть) будут продолжать работать.


 
Voyager ©   (2003-06-03 19:10) [7]

А какой влаг нужно послать в функцию CreateToolhelp32Snapshot чтобы она сделала слепок потоков конкретного процесса?


 
Voyager ©   (2003-06-04 14:41) [8]

Ну что, никто не знает?


 
Digitman ©   (2003-06-04 15:49) [9]

разве в хэлпе не написано ?)


 
Voyager ©   (2003-06-04 16:19) [10]

Но там есть примечание что, если ставиш TH32CS_SNAPTHREAD то он возращаются все потоки в системе, тоесть второй параметер игнорируется


 
jack128 ©   (2003-06-04 16:57) [11]

Voyager © (04.06.03 16:19)
Если присмотрется, то с структуре THREADENTRY32 обнаружется элемент th32OwnerProcessID...


 
Voyager ©   (2003-06-04 17:16) [12]

Вот мой код по остановке процесса:



Procedure SuspendProcess(hProcess:Cardinal);
var
handler:thandle;
data:TThreadEntry32;
begin
handler:=CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD ,hProcess);
if handler=1 then AddLog("Неполучилось сделать слепок");

AddLog("Suspend thread of process - "+inttostr(hProcess));
if Thread32First(handler,data) then
begin
if data.th32OwnerProcessID=hProcess then begin
SuspendThread(data.th32ThreadID);
end;
AddLog("Thread - "+inttostr(data.th32ThreadID));
while Thread32Next(handler,data) do begin
if data.th32OwnerProcessID=hProcess then begin
SuspendThread(data.th32ThreadID);
AddLog("Thread - "+inttostr(data.th32ThreadID));
end;
end;
end
else AddLog("Нет Snapshot-а");
CloseHandle(handler);
end;


В лог всегда попадает "Нет Snapshot-а".
Я уже запарился, подскажите где ошибка.



Страницы: 1 вся ветка

Текущий архив: 2003.06.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
14-50521
Zlo_Inside
2003-05-31 13:11
2003.06.16
Две программы в одном файле (вирус)


1-50362
Pesh
2003-06-04 00:33
2003.06.16
Как отследить появление чужого окна?


14-50497
Школьник
2003-05-28 14:55
2003.06.16
Где можно скачать MSDN, SDK и прочие справочные системы?


14-50450
Elene
2003-05-29 17:35
2003.06.16
Нужна компонента


1-50284
Zuvom
2003-06-04 02:28
2003.06.16
Компонент для работы с диском