Другие языки программирования и технологии

Отслеживаем запуск программы...?(Vb. net )

Вопрос в следующем.: Есть прога которая спокойно сидит в трее и никого не трогает. Но при запуске какогой либо программы программа отлавливает ее запуск и записывает ,например, в ListBox во сколько и какая программа была запущена. Вопрос: Как отловить запуск программы???
Видимо нужно слить список из ListBox в строковую переменную, а потом сравнивать новый список со старым и искать, что изменилось.
Примерно так:
strListBox = "OldListBox" ' старый список запомнили в переменную
Do While Not EOF(1) ' цикл, пока не кончится файл #1, с новым списком задач. Файл открыт на чтение.
Line Input #1, X ' Организуешь чтение строки в переменную Х, допустим, список лежит в файле #1.
intPoz = InStr (1, strListBox, X, vbTextCompare) ' ищем строку Х из нового списка в старом списке.
If intPoz = 0 Then Print #2, "Запущен процесс" & X ' если не нашли, значит это новый процесс. #2 - это лог-файл.
Loop
' А потом наоборот
strListBox = "NewListBox" ' новый список запомнили в переменную
Do While Not EOF(1) ' цикл, пока не кончится файл #1, со старым списком задач. Файл открыт на чтение.
Line Input #1, X
intPoz = InStr (1, strListBox, X, vbTextCompare)
If intPoz = 0 Then Print #2, "Закончен процесс" & X
Loop

То есть сначала ищешь лишние процессы в новом списке по сравнению со старым, находишь, какие задачи запущены, а потом наоборот, в старом списке по сравнению с новым, выясняешь, какие задачи прекращены.
Bolat Artykbekov
Bolat Artykbekov
96 733
Лучший ответ
Проверяй по некоторому таймауту список запущенных процессов и ищи в нем нужную программу. Нашлась - пишем строку в лог, фиксируем время запуска, и продолжаем проверять - пропала -опять пишем уже другую строку в лог, фиксируем время остановки. Все.
Михаил Серков
Михаил Серков
1 363
Мирлан Курбанбаев В этом то и вся проблема. Получить список процессов и поместить его в ListBox это не проблема. предположим что через каждую секунду обновлять Лист как из него получить только что запущенную программу? Ну было 25 процессов стало 26, а что дальше????