Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Заморозка чужого процесса


Автор: Mer1in 27.4.2007, 13:10
Мне необходимо заморозить некий процесс, который в свою очередь имеет несколько потоков Handel и ID процесса у меня есть. По совету написал так:
Код

uses TlHelp32;

function OpenThread(dwDesiredAccess: DWORD; bInheritHandle: BOOL; dwThreadId: DWORD): THandle; stdcall; external kernel32 name 'OpenThread';

procedure StopProcess(ProcessID: Cardinal);
var
  hSnapshot: THandle;
  te: TThreadEntry32;
  Th: THandle;
begin
  hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,ProcessID);
 if Thread32First(hSnapshot,te) then
    repeat
      Th:=OpenThread(THREAD_PRIORITY_NORMAL,false,te.th32ThreadID);
      SuspendThread(Th);
      CloseHandle(Th);
    until not Thread32Next(hSnapshot,te);
  CloseHandle(hSnapshot);
end;

Вообще должно быть так:
Код

Th:=OpenThread(THREAD_SUSPEND_RESUME, false,te.th32ThreadID);

но ругается на THREAD_SUSPEND_RESUME. 
Так вот, передается правильный ID, и не работает. Как я понял, прога просто не находит ни одного потока... У кого есть идеи подскажите в чем ошибка?
А может у кого есть готовая рабочая процедурка?


M
Alexeis
Модератор: выбирайте тип подсветки кода http://forum.vingrad.ru/index.php?showtopic=126445

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)