Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 14.03.2018
Сообщений: 12

Как отследить появление конкретного процесса?

14.03.2018, 11:56. Показов 3350. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть программа А.exe, она автоматически запускается и выполняет операцию, после выполнения программа не закрывается. Собственно нужна программа, которая будет висеть в трее и чекать нужный процесс, а после спустя определенное время (5-10 минут.) будет закрывать её. То есть выполнение закрывающего процесса должно начинаться после обнаружения процесса. И если с ожиданием и закрытием все просто, то вот с отслеживанием процесса, я застрял. Ниже код. Помогите пожалуйста.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Class Form1
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        System.Threading.Thread.Sleep(50000)
        Shell("Cmd /x /c taskkill /f /im test.exe", AppWinStyle.Hide)
    End Sub
    Private Sub NotifyIcon1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles NotifyIcon1.DoubleClick
        Me.Show()
        Me.WindowState = FormWindowState.Normal
    End Sub
 
    Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
        If Me.WindowState = FormWindowState.Minimized Then
            Me.Hide()
        End If
    End Sub
 
End Class
[
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.03.2018, 11:56
Ответы с готовыми решениями:

Как отследить завершение процесса?
Здравствуйте, есть небольшой вопрос, можно как-то отследить завершение процесса? Мой случай, есть 15 серверов, у всех есть батники...

Как отследить запуск процесса, который запущен из под другого?
Всем привет, сейчас объясню=) у меня в проге отслеживаются запущенные процессы, данные которых я получаю во время их запуска(ID, Handle,...

Как отследить прогресс сжатия конкретного файла
Доброго времени суток! Возникла необходимость сжать текстовую информацию с помощью GZip. Алгоритм примерно такой: текстовый файл...

6
 Аватар для Nachrichter
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
14.03.2018, 14:06
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

Нет под руками студии, так что по памяти:
VB.NET
1
2
Dim ProcList() As Process = Process.GetProcessesByName("имя процесса")
'и делайте с ним всё, что хотите
Не забудьте про исключение при отсутствии процесса.
2
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
14.03.2018, 14:18
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

alucard306, если прога будет висеть в трее и периодически проверять все это дело, то лучше использовать таймер с нужным интервалом.
Далее, найти процесс по имени как и писали выше
VB.NET
1
Dim ProcList() As Process = Process.GetProcessesByName("имя процесса")
чтобы его завершить, достаточно использовать
VB.NET
1
2
3
4
5
       Try
                   ProcList(0).Kill()
                Catch ex As Exception
                MsgBox(ex.message)
                End Try
либо пройтись циклом по всей коллекции ProcList, в этом случае можно будет убить все экземпляры запущенной программы.
4
0 / 0 / 0
Регистрация: 14.03.2018
Сообщений: 12
15.03.2018, 07:22  [ТС]
Цитата Сообщение от Nachrichter Посмотреть сообщение
Не забудьте про исключение при отсутствии процесса.
А можно по подробнее? Я просто начинающий.
Цитата Сообщение от Orlangur1991 Посмотреть сообщение
alucard306, если прога будет висеть в трее и периодически проверять все это дело, то лучше использовать таймер с нужным интервалом.
Далее, найти процесс по имени как и писали выше
Ну если быть точным, то проверка должна быть каждую секунду, так как программа может быть запущенна в любое время. она работает по следующей схеме:
1) Появляются файлы в папке
2) Автоматический запуск программы
3) Идет процесс обработки минут 5
Ну а далее программа не закрывается, поэтому и понадобилась прога, которая после обнаружения процесса спустя время закрывала бы программу.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18294 / 14218 / 5368
Регистрация: 17.03.2014
Сообщений: 28,897
Записей в блоге: 1
15.03.2018, 08:00
Лучший ответ Сообщение было отмечено alucard306 как решение

Решение

Цитата Сообщение от alucard306 Посмотреть сообщение
Ну если быть точным, то проверка должна быть каждую секунду, так как программа может быть запущенна в любое время. она работает по следующей схеме:
Не надо никаких "каждую секунду". Используй WMI. Это даст возможность узнавать о запуске приложения без явного опроса. Код здесь - Отловить запуск стороннего приложения
4
 Аватар для Nachrichter
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
15.03.2018, 08:54
Цитата Сообщение от alucard306
Цитата Сообщение от Nachrichter
Не забудьте про исключение при отсутствии процесса.
А можно по подробнее? Я просто начинающий.
Как Вам написали в посте №3:
VB.NET
1
2
3
4
5
Try
   ProcList(0).Kill()
Catch ex As Exception
   MsgBox(ex.message)
End Try
т.е. в случае, когда "убивать" нечего, программа не вывалится с исключением, а продолжит работу после соответствующего сообщения.
1
0 / 0 / 0
Регистрация: 14.03.2018
Сообщений: 12
15.03.2018, 09:08  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Не надо никаких "каждую секунду". Используй WMI. Это даст возможность узнавать о запуске приложения без явного опроса.
Спасибо добрый человек, все вышло. Всем спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2018, 09:08
Помогаю со студенческими работами здесь

Как отслеживать появление в темах новых постов для каждого конкретного юзера
Тема такая, есть форум. В форуме топики(треды(темы)). Как отслеживать появление в темах новых постов для каждого конкретного юзера? ...

Как увеличить или уменьшить объем памяти для конкретного процесса?
Добрый день, подскажите пожалуйста. Возможно ли увеличить или уменьшить объем оперативной памяти для конкретного процесса в Windows...

Как отследить заканчивание процесса?
Архивирую файл. А потом исходный убиваю. Если все сделать под одной кнопкой, то убийство происходит раньше, чем заканчивается процесс...

Как отследить закрытие процесса?
Подскажите пожалуйста, как в C# отслеживать процессы.

Как отследить завершение процесса Windows?
Есть программа programma.exe, при запуске которой открывается диалоговое окно выбора изображения, после чего с выбранного изображения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru