Тема: Процессы
Показать сообщение отдельно
  #5  
Старый 28.09.2008, 07:27
abyss_by abyss_by вне форума
Прохожий
 
Регистрация: 24.09.2008
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от BITCH666
а где здесь задаётся имя процесса? я не могу найти.

Вообще здесь в параметре процедуры, но этот пример не убьет процесс.
Вот код, который найдет PID по имени. А дальше можно и "убить" процесс.

Код:
function GetProcessPidByName(fName: String): THandle;
 var
  hSnapshot: THandle;

   function ProcessPidByName(hProcess: DWord; fName: String): THandle;
    var
     ProcEntry: TProcessEntry32;
     ProcessPid: THandle;
   begin
     ProcEntry.dwSize:= SizeOf(ProcEntry);
     ProcessPid:= 0;
     if Process32First(hProcess, ProcEntry) then
      begin
        repeat if ProcEntry.szExeFile = fName then
         begin
          ProcessPid:= ProcEntry.th32ProcessID;
          Result:= ProcessPid;
          Exit;
         end;
        until not Process32Next(hProcess, ProcEntry)
        end;
       Result:= ProcessPid;
   end;

begin
  hSnapshot:= CreateToolhelp32Snapshot($2, 0);
   if hSnapshot <> INVALID_HANDLE_VALUE then
    Result:= ProcessPidByName(hSnapshot, fName);
   CloseHandle (hSnapShot);
end;
Ответить с цитированием