|
[С#] Вопрос про состояние процесса | ☑ | ||
---|---|---|---|---|
0
Steel_Wheel
13.10.11
✎
22:34
|
Есть консольное приложение, я создаю в нем процесс, затем подсасываюсь процессом к оконному приложению.
Если я нажму на крестик окошка, то процесс будет IsActive, и будет ли доступен метод Kill()? |
|||
1
Steel_Wheel
13.10.11
✎
22:35
|
Есть свое мнение, но хотю услышать глас профессионалов
|
|||
2
Steel_Wheel
13.10.11
✎
22:51
|
Нашел свойство HasExited
|
|||
3
filh
13.10.11
✎
22:53
|
ищи еще.
|
|||
4
Steel_Wheel
13.10.11
✎
23:33
|
(3) А ты что посоветуешь?
|
|||
5
Steel_Wheel
14.10.11
✎
09:54
|
Обожду, может кто и посоветует, как проверить сабж правильно
|
|||
6
Steel_Wheel
14.10.11
✎
13:23
|
^up
|
|||
7
Ненавижу 1С
гуру
14.10.11
✎
13:25
|
"я создаю в нем процесс, затем подсасываюсь процессом к оконному приложению"
более подробно |
|||
8
Steel_Wheel
14.10.11
✎
13:31
|
(7) Пишу по памяти: код дома
System.Diagnostics.Process MyProc = new System.Diagnostics.Process(); MyProc.StartInfo.FileName = "C:\My.exe"; MyProc.Start(); |
|||
9
IVIuXa
14.10.11
✎
15:40
|
(0)
крестик окошка и метод Kill() не один хрен ? |
|||
10
Steel_Wheel
14.10.11
✎
15:44
|
(9) Это CloseMainWindow() для оконных приложений, но тут могут мешать подтверждение завершения работы. Есть еще Dispose(), но я не уверен, что его правильно использовать в этом случае. Остановился пока на Kill()..
Цель вопроса была: как не сделать Kill() процессу, который был закрыт по крестику? Пока условие такое: if (!MyProc.HasExited) Kill(); |
|||
11
IVIuXa
14.10.11
✎
15:45
|
(10)
ты объясни нормально что ты хочешь вообще ? |
|||
12
IVIuXa
14.10.11
✎
15:47
|
(10)
понял |
|||
13
Steel_Wheel
14.10.11
✎
15:48
|
(11) Консольное приложение открывает win-приложение. Затем взаимодействует с формой, затем его закрывает. Есть вероятность, что в процесс влезет юзер и закроет окошко крестиком (отыщет в дереве процессов и удалит его оттуда). Как корректно проверить это win-приложение на открытость и закрыть его программно?
|
|||
14
Steel_Wheel
14.10.11
✎
15:49
|
У меня конструктор класса в (8), деструктор в (10)
|
|||
15
izekia
14.10.11
✎
15:58
|
(0) мне кажется ты из одного процесса не можешь управлять диалогом другого процесса, килл сделать можешь ... сорри что криво выразился, не помню как это точно формулируется
|
|||
16
IVIuXa
14.10.11
✎
16:01
|
попробуй так
if(MyProc.ProcessName.Contains("My.exe"))Kill(); или if (MyProc!=null) Kill(); |
|||
17
IVIuXa
14.10.11
✎
16:16
|
да и вообще может крестик убрать ?
|
|||
18
Steel_Wheel
14.10.11
✎
16:16
|
(15) Управлять можно. Есть библиотеки, позволяющие это делать.
(16) Сам процесс не становится null при закрытии. Этот код фактически работает if (!MyProc.HasExited) Kill(); Но хотел уточнить, может правильнее if (!MyProc.Disposed) MyProc.Dispose();? |
|||
19
Steel_Wheel
14.10.11
✎
16:17
|
(17) win-приложение не мое )
|
|||
20
IVIuXa
14.10.11
✎
16:44
|
||||
21
Steel_Wheel
14.10.11
✎
16:58
|
(20) Дома гляну, спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |