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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2012, 07:58   #1
Nikityans
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 11
По умолчанию Проверить запушен ли explorer.exe

Добрый день. Заранее извиняюсь за лишнюю тему... вопрос такой: делаю антивирусную утилитку, она по таймеру должна проверять- запушен ли explorer.exe. Если вдруг он завершён или его нет то запустить его. Я пытался сделать это, но не получилось. Поможете? заранее благодарен)
Nikityans вне форума Ответить с цитированием
Старый 04.05.2012, 08:27   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Гуглите описания функций PsAPI.
Сам модуль есть в delphi.

TIHelp32 уже устарел..ну это вам на заметку.
Человек_Борща вне форума Ответить с цитированием
Старый 04.05.2012, 16:22   #3
Nikityans
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 11
По умолчанию

Может кодом подскажете пожалуйста?
Nikityans вне форума Ответить с цитированием
Старый 04.05.2012, 17:30   #4
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Код:
uses
TlHelp32
...
function IsRunning(Name: string): Boolean;
var
  han: THandle;
  ProcStruct: PROCESSENTRY32; // From "TlHelp32" in uses clause
  sID: string;
begin
  Result := False;
  // Get a snapshot of the system
  han := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);

  if han = 0 then Exit;

  // Loop thru the processes until we find it or hit the end
  ProcStruct.dwSize := sizeof(PROCESSENTRY32);

  if Process32First(han, ProcStruct) then
  begin
    repeat
      sID := ExtractFileName(ProcStruct.szExeFile);
      // Check only against the portion of the name supplied, ignoring case
      if Copy(sId, 1, Length(Name)) = Name then
      begin
        // Report we found it
        Result := True;
        Break;
      end;
    until not Process32Next(han, ProcStruct);
  end;

  //Clean-up
  CloseHandle(han);
end;
...
if IsRunning('explorer.exe') then ShowMessage('Всё пучком');
Shouldercannon вне форума Ответить с цитированием
Старый 07.05.2012, 16:14   #5
Nikityans
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 11
По умолчанию

Это не совсем то. Ведь explorer.exe это тоже оконный тип?
var win:HWND; Я хочу найти explorer.exe через hwnd, и проверить, если его нет то запустить. просто окна можно найти по названию, а explorer как?
Nikityans вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
explorer.exe voland123454321 Операционные системы общие вопросы 11 19.07.2010 13:23
ошибка explorer.exe Bodnya1994 Свободное общение 3 03.04.2009 00:10
ошибка explorer.exe Bodnya1994 Помощь студентам 5 02.04.2009 21:02
explorer.exe x2 -- ?? h0rr0r Помощь студентам 1 12.01.2009 19:12
Как программно проверить и отключить процесс Explorer ! asked86 Win Api 10 17.12.2008 11:04