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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2012, 14:31   #1
dolphin705
Форумчанин
 
Аватар для dolphin705
 
Регистрация: 02.08.2008
Сообщений: 213
Вопрос Как отследить запуск и завершение процессов?

Здравствуйте, подскажите как отследить запуск и завершение процессов в системе? Хотелось бы логер написать. Спасибо.
dolphin705 вне форума Ответить с цитированием
Старый 05.07.2012, 21:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В таймере
Скажем можно использовать функции из модуля PsAPI для получения списка запущенных процессов. Хранить его и при очередном по таймеру получении списка сравнивать с хранимым.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.07.2012, 06:26   #3
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Кроме таймера - WMI. Навесить события на Win32_Process.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 06.07.2012, 07:20   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Кроме таймера - WMI.
К сожалению WMI не везде удастся использовать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.07.2012, 07:59   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Например?

(дибильное ограничение в 10 символов, как оно меня бесит, гори в аду админ)
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 06.07.2012, 09:49   #6
QunneD
C++ & PHP & Asm
Форумчанин
 
Аватар для QunneD
 
Регистрация: 06.12.2008
Сообщений: 300
По умолчанию

Хуки на CreateProcess / TerminateProcess.

ShellExecute, WinExec - это облегченные формы, т.е. они работают через CreateProcess. Поэтому и перехватывать надо его.
QunneD вне форума Ответить с цитированием
Старый 06.07.2012, 20:47   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Например?
Win Home без сервиспаков. Бьюсь с ними уже год - никак WMI там нет.
И кстати прикол, котрый меня в шок поврег - антивирус гасит обращение к базе по запросу. Тоже достало жутко.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.07.2012, 05:05   #8
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Win Home без сервиспаков. Бьюсь с ними уже год - никак WMI там нет.
WMI версии 1.0 появился ещё в Win95. WMI 1.5 - начиная с Win2000.

Может речь идёт о конкретном провайдере?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 07.07.2012, 10:29   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Может речь идёт о конкретном провайдере?
Точно не скажу. сейчас проверил еще раз - просто нет доступа.
так что пожалуй проблема не в отсутствии wmi а в политике безопасности.
Ладно в эту тему писать свое более не буду...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.07.2012, 11:09   #10
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Код:
var
  SI: TStartupInfo;
  PI: TProcessInformation;
...
begin
FillChar(SI, SizeOf(SI), 0);
SI.cb := SizeOf(SI);
// запуск процесса
CreateProcess(nil, PChar('rar.exe a -ep1 -m5 '+pdaDir+pdaName+'.RAR '+tmpDir+'PDA_*.DAT '+tmpDir+pdaName+'.UTF'), nil, nil, False, 0, nil, nil, SI, PI);
// ждем пока не закончится
WaitForSingleObject(PI.hProcess, Infinite);
// продолжаем работу
end;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отследить завершение Excel книги. TEHb Общие вопросы Delphi 6 20.04.2011 00:15
Завершение процессов Sanek777 Общие вопросы Delphi 9 13.08.2010 21:25
Отследить запуск системы artemavd Общие вопросы Delphi 3 11.11.2009 17:48
Отследить запуск программы. Mixasik Общие вопросы Delphi 3 01.06.2009 09:12
Как отследить завершение выполнения потока TThread? Трик Общие вопросы Delphi 3 24.10.2007 14:55