Программирование на Delphi и не только Как закрыть программу по имени ее файла? | Программирование на Delphi и не только

Delphi FAQ >> Окна

Для того, чтобы завершить процесс по имени его исполняемого файла, можно воспользоваться следующей функцией на Delphi:

uses TLHelp32; ...

function CloseByExeName(ExeFilename: String): Integer;


var   continueloop: Boolean;   fsnapshothandle: THandle;   fprocessentry32: TProcessEntry32;

const


  //константа для команды завершения процесса   process_terminate=$0001;

begin

  Result := 0;

  //переводим имя файла в верхний регистр для сравнения

  ExeFilename = uppercase(ExeFilename);

  //получаем снимок работабщих в системе процессов

  fsnapshothandle := createtoolhelp32snapshot(th32cs_snapprocess,0);   fprocessentry32.dwsize := sizeof(fprocessentry32);   continueloop := process32first(fsnapshothandle,fprocessentry32);

  //перебираем процессы


  while integer(continueloop)0 do
  begin
    //если имя файла совпадает с искомым, то пробуем его завершить
    if ( ( uppercase( extractfilename( fprocessentry32.szexefile ) ) = ExeFilename ) OR
         ( uppercase( fprocessentry32.szexefile ) = ExeFilename) ) then       Result := integer( terminateprocess( openprocess( process_terminate, bool(0), fprocessentry32.th32processid ), 0) );

    //берем следующий процесс

    continueloop := process32next(fsnapshothandle,fprocessentry32);

  end;

  closehandle(fsnapshothandle);

end;


Хороший хостинг может быть бесплатным! Попробуйте PHP хостинг для сайтов Бесплатно домен cv.ua и попробуйте найти отличия от платного.