Главная страница
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
8-50404
greenrul
2003-03-03 20:10
2003.06.16
Как понизить системную громкость?


7-50528
Dimaz-z
2003-04-10 15:23
2003.06.16
Как созжать и поместить ярлык?


6-50420
acsoft
2003-04-14 20:45
2003.06.16
Кто разбирается в NMSMTP. Помогите новичку.


6-50415
atruhin
2003-04-12 14:49
2003.06.16
Как определить IP компьютера в ЛС зная его сетевое имя?


1-50297
killer
2003-06-04 17:04
2003.06.16
Как в программе выделить и скопировать текст из Label-а?