Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Как закрыть работающее приложение из кода? Добавлено: 22.06.04 15:49  

Автор вопроса:  salo_ua

Так запускаю NetMeeting

Dim netmeet As New System.Diagnostics.Process()

netmeet.Start("C:\Program Files\NetMeeting\conf.exe")

А как его теперь закрыть?

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 KL



ICQ:

Вопросов: 3
Ответов: 8
 Web-сайт: а нетю...
 Профиль | | #1
Добавлено: 22.06.04 16:03
А netmeet.Close() не пробовал?

Ответить

Номер ответа: 2
Автор ответа:
 salo_ua



Вопросов: 7
Ответов: 8
 Профиль | | #2 Добавлено: 22.06.04 16:13
Пробовал, но не помогло! Программа у меня на эту команду никак не отреагировала.

Ответить

Номер ответа: 3
Автор ответа:
 KL



ICQ:

Вопросов: 3
Ответов: 8
 Web-сайт: а нетю...
 Профиль | | #3
Добавлено: 22.06.04 16:32
Тогда, наверно просто так не получится. Надо либо API функцию использовать, либо команду Windows какую-нибудь. Я так думаю...

Ответить

Номер ответа: 4
Автор ответа:
 alex



Вопросов: 84
Ответов: 453
 Профиль | | #4 Добавлено: 22.06.04 16:45
надо сначала найти ИД процесса
к примеру:
Pid = Shell("c:\windows\notepad.exe", vbNormalFocus)
или к примеру:
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Pid=GetCurrentProcessId


а потом:
Declare Function TerminateProcess Lib "kernel32" (ByVal ApphProcess As Long, ByVal uExitCode As Long) As Long

AppKill = TerminateProcess(Pid, 0)

Ответить

Номер ответа: 5
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #5
Добавлено: 22.06.04 16:58
Close - Не то. Тут Kill наверное поможет. Читаем MSDN:

Close - Frees all the resources that are associated with this component.
Kill - Immediately stops the associated process.

То есть Close логично вызывать после завершения процесса для
освобождения ресурсов. А собственно для убийства процесса надо
вызывать Kill.

Ответить

Номер ответа: 6
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #6 Добавлено: 22.06.04 17:06
netmeet.Abort() не катит?



Ответить

Номер ответа: 7
Автор ответа:
 salo_ua



Вопросов: 7
Ответов: 8
 Профиль | | #7 Добавлено: 22.06.04 17:14
 Такого метода там вообще нет.

Ответить

Номер ответа: 8
Автор ответа:
 salo_ua



Вопросов: 7
Ответов: 8
 Профиль | | #8 Добавлено: 22.06.04 17:19

 Большое спасибо всем за помощь.

Заработало в таком виде:

Dim netmeet As New Process()

'Запуск

netmeet = Process.Start("C:\Program Files\NetMeeting\conf.exe")

'Закрытие

netmeet.Kill()

Ответить

Номер ответа: 9
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #9 Добавлено: 22.06.04 17:27
тоесть Kill()



Ответить

Номер ответа: 10
Автор ответа:
 salo_ua



Вопросов: 7
Ответов: 8
 Профиль | | #10 Добавлено: 22.06.04 17:49

Важным есть присваивание объекту netmeet процесса:

netmeet = Process.Start("C:\Program Files\NetMeeting\conf.exe")

Ещё одно замечание: перед тем как закрывать процесс, необходимо проверить или он еще работает:

If netmeet.HasExited = False Then netmeet.Kill()

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам