Показать сообщение отдельно
  #11  
Старый 19.06.2008, 17:51
Аватар для Winny
Winny Winny вне форума
Продвинутый
 
Регистрация: 26.05.2007
Адрес: Планета земля, Россия, Москва
Сообщения: 620
Репутация: 30
По умолчанию

Убить процесс, зная только имя EXE-файла:
Код:
  Tlhelp32, Windows, SysUtils; 

function KillTask(ExeFileName: string): integer; 
const 
  PROCESS_TERMINATE=$0001; 
var 
  ContinueLoop: BOOL; 
  FSnapshotHandle: THandle; 
  FProcessEntry32: TProcessEntry32; 
begin 
  result := 0; 

  FSnapshotHandle := CreateToolhelp32Snapshot 
                     (TH32CS_SNAPPROCESS, 0); 
  FProcessEntry32.dwSize := Sizeof(FProcessEntry32); 
  ContinueLoop := Process32First(FSnapshotHandle, 
                                 FProcessEntry32); 

  while integer(ContinueLoop) <> 0 do 
  begin 
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = 
         UpperCase(ExeFileName)) 
     or (UpperCase(FProcessEntry32.szExeFile) = 
         UpperCase(ExeFileName))) then 
      Result := Integer(TerminateProcess(OpenProcess( 
                        PROCESS_TERMINATE, BOOL(0), 
                        FProcessEntry32.th32ProcessID), 0)); 
    ContinueLoop := Process32Next(FSnapshotHandle, 
                                  FProcessEntry32); 
  end; 

  CloseHandle(FSnapshotHandle); 
end;
Юзание функции:
Код:
KillTask('notepad.exe');
__________________

Ответить с цитированием