Форум: "Основная";
Текущий архив: 2003.06.16;
Скачать: [xml.tar.bz2];
ВнизПодскажите как усыпить процес Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c