Главная страница
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.011 c
1-50280
Sarge
2003-06-04 13:46
2003.06.16
ShFileOperation vs Long Names ???


7-50532
nokk9
2003-04-11 02:14
2003.06.16
Телефон


1-50366
АлексейК
2003-06-02 13:23
2003.06.16
Создание копии объекта, созданного в приложении, в DLL.


14-50463
Andrey Filatow
2003-05-29 20:55
2003.06.16
Rave report


1-50283
NickName
2003-06-03 10:58
2003.06.16
Поиск компонентов по форме