![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить сколько времени запущена программа
baataars © (2003-11-14 19:32:00)
?
baataars (2003-11-21 08:49:00) [1]
спасибо за ответ. попробую реализовать.
Жалко что нельзя узнать через системные функции, чеж билл гейтс не предусмотрел? приходиться заново изобретать велосипед.
default (2003-11-15 01:21:00) [2]
опс, это не по теме)
default (2003-11-15 01:17:00) [3]
WaitForSingleObject
"Process The CreateProcess or OpenProcess function returns the handle. A process object"s state is signaled when the process terminates."
хендл процесса ты писал знаешь как получить
вроде дело за малым
DeadMeat (2003-11-15 01:14:00) [4]
> default © (15.11.03 01:11) [4]
> а если чужая прога была запущена раньше его?
Выход...
Грузиться через ветку RunServices (в случае Win98/ME..., а если Win2k/XP, то просто Run), получить список процессов при запуске, и если там висит эта прога, то начинать отсчёт с нуля..., т.к. всё только начало работать...
default (2003-11-15 01:11:00) [5]
Дубинин Алексей © (15.11.03 00:48) [3]
а если чужая прога была запущена раньше его?
Дубинин Алексей (2003-11-15 00:48:00) [6]
Возможен такой выход из этой проблемы. Пусть у тебя стоит программа менеджер которая следит за другими программами. Пишешь ловушку, ставишь ее на WH_SHELL. Как запустилась программа...получил в wParam ее хэндл...определил что это за программа..если та которая угу, то начинаешь считать время...после когда время кончилось уибваешь ее...не забывая вновь определить а не выключили ли ее. Вот так, например, пойдет? :-))
baataars (2003-11-14 21:43:00) [7]
Сорри что не правильно сформировал вопрос.
нужно получить сколько времени запущена чужая программа (чужой exe, исходников нету) и именно виндовая программа.
У меня задача - проконтролировать чужую программу - если она работает больше 15 минут - послать ей kill.
как получить список процессов и найти нужную программу я знаю и знаю как послать ей килл, интересно - можно ли вообще получить время когда была запущена программа или сколько времени прошло с момента запуска, потому что таскманагер это не показывает. и prcview тож не показывает.
}{enon (2003-11-14 20:09:00) [8]
1)Создать таймер, в котором каждые Х секунд прибавлять Х к переменной. Минус в том, что через некоторое время происходит "сбой" - реакция таймера не мгновенна, а потому время будет не очень точно.
2)Получить системное время (функция Now(), либо ищи по хелпу). Проблема возникнет, если юзер врубит спящий режим - тогда комп будет выключен, а время будет идти.