Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
39 / 28 / 8
Регистрация: 14.04.2012
Сообщений: 249

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

07.03.2014, 20:49. Показов 1114. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В F.A.Q. есть пример как отловить завершение стороннего процесса, где используется специально созданная sub
VB.NET
1
Private Sub ProcEx() Handles Pr.Exited
Возможно ли создать sub типа Pr.Start для нужного процесса?
Не хочется загружать процессор ежесекундным таймером по проверке запущен ли процесс или нет. (тем более, что он может быть долго не запущен).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.03.2014, 20:49
Ответы с готовыми решениями:

Отловить запуск стороннего процесса и запустить свое приложение
Всем доброго времени суток. Можно ли как-то вызвать программу при запуске другой? Т.е, например, у меня есть какая-нибудь программа...

Как отслелить запуск стороннего процесса
мне нкжно отслелить запуск стороннего процесса именно процесса по его имени а не по заголовку окна Заранее благодарен ИМХО очень уж надо

Отловить запуск стороннего приложения
Здравствуйте. Прошу подсказать. Нужно, чтобы при запуске сторонней программы, моя программа это понимала и делала действие. Ну например...

1
 Аватар для Billynet
1 / 1 / 1
Регистрация: 10.03.2014
Сообщений: 6
10.03.2014, 06:04
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
Public Class Form1
    Public Class ListDirective
        Event ChangedItems(sender As Object, e As ItemEventArgs)
        Private MainList As New Collection
        Private ListKey As New Collection
        Function Add(key As String, item As Object)
            MainList.Add(item, key)
            ListKey.Add(key, key)
            RaiseEvent ChangedItems(Me, New ItemEventArgs(ItemEventArgs.Actions.Add, key, item))
    #End Function
        Function Remove(key As String)
            Dim oldKey = key
            Dim oldItem = MainList(key)
            MainList.Remove(key)
            ListKey.Remove(key)
            RaiseEvent ChangedItems(Me, New ItemEventArgs(ItemEventArgs.Actions.Remove, oldKey, oldItem))
    #End Function
        Function Clear()
            MainList.Clear()
            RaiseEvent ChangedItems(Me, New ItemEventArgs(ItemEventArgs.Actions.Clear, "", Nothing))
    #End Function
        Function IsItem(key As String) As Boolean
            Try
                Dim value = MainList(key)
                GC.Collect()
                Return True
            Catch ex As Exception
                Return False
            End Try
    #End Function
        Function GetItem(key As String) As Object
            If Not IsItem(key) Then Return Nothing : Exit Function
            Return MainList(key)
        End Function
        ReadOnly Property Keys As String()
            Get
                Dim result As String() = New String(ListKey.Count - 1) {}
                Dim i As Integer = 0
                For Each item In ListKey
                    result(i) = item : i += 1
                Next
                Return result
            End Get
        End Property
        ReadOnly Property Items As String()
            Get
                Dim result As String() = New String(MainList.Count - 1) {}
                Dim i As Integer = 0
                For Each item In MainList
                    result(i) = item : i += 1
                Next
                Return result
            End Get
        End Property
        ReadOnly Property Count() As Integer
            Get
                Return MainList.Count
            End Get
        End Property
        Public Class ItemEventArgs
            Inherits EventArgs
            Private DefaultAction As Actions = Actions.Add
            Private DefaultKey As String = ""
            Private DefaultItem As Object
            Enum Actions
                Clear = -1
                Remove = 0
                Add = 1
            End Enum
 
            Sub New(action As Actions, key As String, item As Object)
                DefaultAction = action
                DefaultKey = key
                DefaultItem = item
            End Sub
 
            Public ReadOnly Property Action As Actions
                Get
                    Return DefaultAction
                End Get
            End Property
 
            Public ReadOnly Property Key As String
                Get
                    Return DefaultKey
                End Get
            End Property
 
            Public ReadOnly Property Item As Object
                Get
                    Return DefaultItem
                End Get
            End Property
        End Class
    End Class
 
 
    WithEvents IList As New ListDirective
    Dim IsStartup = True
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        For Each app In Process.GetProcesses
            If Not app.MainWindowTitle = "" Then
                IList.Add(app.Id, app.MainWindowTitle)
            End If
        Next
 
        Dim timerGlobal As New Timer
        AddHandler timerGlobal.Tick, Sub()
                                         For Each key In IList.Keys
                                             Try
                                                 Dim value = Process.GetProcessById(key)
                                             Catch ex As Exception
                                                 IList.Remove(key)
                                             End Try
 
 
 
                                         Next
 
                                         For Each app In Process.GetProcesses
                                             If Not app.MainWindowTitle = "" Then
                                                 If Not IList.IsItem(app.Id) Then IList.Add(app.Id, app.MainWindowTitle)
                                             End If
                                         Next
                                     End Sub
        timerGlobal.Interval = 100
        timerGlobal.Start()
        IsStartup = False
    End Sub
 
    Private Sub IList_ChangedItems(sender As Object, e As ListDirective.ItemEventArgs) Handles IList.ChangedItems
        If e.Action = ListDirective.ItemEventArgs.Actions.Add Then
            If IsStartup Then Exit Sub
            MsgBox("Зпущено приложение " & e.Item)
        ElseIf e.Action = ListDirective.ItemEventArgs.Actions.Remove Then
            MsgBox("Приложение " & e.Item & " было закрыто")
        End If
    End Sub
End Class
Но я всё равно использовал Timer, но лишь для того, чтобы он проверял список запущенных приложения и если в нём появлялась какая либо запущенная программа он сразу сообщал в событие DirList_ChangedItems.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.03.2014, 06:04
Помогаю со студенческими работами здесь

Как определить разрядность стороннего процесса
Добрый вечер, подскажите пж-та как можно определить разрядность стороннего процесса? Для своего процесса есть Environment.Is64BitProcess,...

Запуск стороннего процесса
Здравствуйте , нужна помощь в работе с формами в VS 2012 . Мною была написана игра через OpenGL и хотелось бы к этой игре создать меню....

Запуск стороннего приложения с контролем его процесса
Незнаю в правильный ли отдел написал! Вообшим как можно мделать так что б программка запускала другой exe(установочный фаил) и cамое...

Как определить границы памяти стороннего процесса?
Мне необходим пример c определением границ памяти стороннего процесса, по принципу работы artmoney. Суть задачи такая, есть сторонний...

Как установить, что окно стороннего процесса активно
Если теряется его фокус (к примеру во время выполнения стороннего процесса юзер нажимает какую-то кнопку) это приводит к хаосу. т.к. в...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru