Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2010, 15:32   #1
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию Программное завершение процеса

Как программно и корректно завершить процес "Explorer.exe"?
Я завершаю так:
Код:
WinExec('TASKKILL /F /T /IM "EXPLORER.EXE"', sw_hide);
но при этом завершается не только експлорер но и почти половина других процессов, как можно завершить этот процес что бы получилось так будто мы зашли в диспетчер задач и отключили его там, что бы отключился только один процес а не несколько?
Мой скромненький сайт

Последний раз редактировалось Vladya; 07.05.2010 в 15:41.
Vladya вне форума Ответить с цитированием
Старый 07.05.2010, 15:41   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Взято из DELPHIWORLD
Код:
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(Explorer.exe)

Последний раз редактировалось SERG1980; 07.05.2010 в 16:16.
SERG1980 вне форума Ответить с цитированием
Старый 07.05.2010, 15:51   #3
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

Спасибо большое все работает на ура!!!
Мой скромненький сайт
Vladya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ускорение процеса проверки данных! $T@LKER БД в Delphi 0 25.04.2010 02:03
Как найти название класса процеса зная его handle? Dazz Win Api 3 16.03.2010 11:35
Путь к файлу, по имени процеса Sensizu Win Api 5 10.12.2009 13:42
Проверка и востанавление процеса %( Pirotexnik Общие вопросы Delphi 5 27.03.2009 14:27
Завершение процеса aesoem Общие вопросы Delphi 10 28.08.2008 16:44