Другие языки программирования и технологии
Отслеживаем запуск программы...?(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
То есть сначала ищешь лишние процессы в новом списке по сравнению со старым, находишь, какие задачи запущены, а потом наоборот, в старом списке по сравнению с новым, выясняешь, какие задачи прекращены.
Примерно так:
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
То есть сначала ищешь лишние процессы в новом списке по сравнению со старым, находишь, какие задачи запущены, а потом наоборот, в старом списке по сравнению с новым, выясняешь, какие задачи прекращены.
Проверяй по некоторому таймауту список запущенных процессов и ищи в нем нужную программу. Нашлась - пишем строку в лог, фиксируем время запуска, и продолжаем проверять - пропала -опять пишем уже другую строку в лог, фиксируем время остановки. Все.
Мирлан Курбанбаев
В этом то и вся проблема. Получить список процессов и поместить его в ListBox это не проблема. предположим что через каждую секунду обновлять Лист как из него получить только что запущенную программу? Ну было 25 процессов стало 26, а что дальше????
Похожие вопросы
- пишу на delphi,vb.net,php,mysql,html,css но незная матиматики можно пробица в кодеры?
- VB.NET Генерация случайных слов
- Здраствуйте! На Vb.net дано двухмерные массивы из (5,5) элементов!
- Быстрый запуск программы от имени другого пользователя Windows 7
- Как запретить второй запуск программы?
- как запретить второй запуск программы (Делфи) Добрый день всем, как запретить второй запуск своей программы
- Чем отличаются ОС в запуске программ? Например Windows, Linux и др. Конкретней вопрос внутри.
- Где ошибка в программе PascalABC.net
- Как задать двумерный массив на C#, чтобы значения можно было писать при запуске программы?
- Прошу помощи. нужно что бы при запуске программы, к примеру Опера, система спрашивала пароль, как это можно сделать?