Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Как завершить процесс без апи? Добавлено: 29.12.08 23:23  

Автор вопроса:  AWР | Web-сайт: bomber.h17.ru | ICQ: 345685652 
Я написал: dim a as process a.getprocessbyname("имяпроцесса") a.kill. Как правильно завершить процесс с visualstudio 2005, этим методом?

Ответить

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

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



ICQ: 462217470 

Вопросов: 9
Ответов: 38
 Профиль | | #1 Добавлено: 30.12.08 11:01
  1. Process.GetProcessesByName("имя процесса")(0).Kill()

Ответить

Номер ответа: 2
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #2
Добавлено: 30.12.08 13:52
Почему 0? Можешь подробней расписать об этом методе

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #3 Добавлено: 30.12.08 15:34
Process.GetProcessesByName("имя процесса";)(0).Kill()

криво и безграмотно..
а если GetProcessesByName вернет null или пустой массив.. что тогда??? Да здравствует Exception?

Ответить

Номер ответа: 4
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #4
Добавлено: 30.12.08 16:41
Все работает ок. Спс. Объясните пожалуйста почему именно ноль, что это за ноль? И почему он должен быть на той же строке

Ответить

Номер ответа: 5
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #5
Добавлено: 30.12.08 16:43
Ну я про (0).kill

Ответить

Номер ответа: 6
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #6 Добавлено: 30.12.08 17:56
Объясните пожалуйста почему именно ноль, что это за ноль?

Потому что GetProcessesByName возвращает массив найденных процессов. К примеру у тебя запущенно несколько копий блокнота или открыто несколько документов, в результате ты получешь массив из нескольких экземпляром объекта Process. Тот ноль указыват на то что операция Kill производится с первым элементом массива. Т.е. в нашем,гипотетическом, случае ты убешь только первый документ, а остальные остануться как и прежде.
Кроме того, существует вероятность того, что в данный,конкретный, момент времени ни одного блокнота(раз уж мы о них заговорили) не быо открыто и в этом случае вернеттся пустой массив и следовательно при попытке обратться к первому элементу пустого массива ты получишь ошибку вида OutOfRangeException или InvalidArgumentException.. что то в этом роде.
Правильней было бы проверить полученный массив на количество найденных элементов, и если равно еденице то просто убить,если же больше то перебрать их в цикле и убить.. или если массив пустой то, разумеется, нифига не делать..

Ответить

Номер ответа: 7
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #7 Добавлено: 30.12.08 18:15
EROS пишет:
Правильней было бы проверить полученный массив на количество найденных элементов, и если равно еденице то просто убить,если же больше то перебрать их в цикле и убить..

Ну, думаю Crio просто показал сам принцип) А всякие проверки и прочее можно уже самому доделать по-моему)

Ответить

Номер ответа: 8
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #8
Добавлено: 30.12.08 18:25
On error resume next и никаких проверок. Спасибо кстати

Ответить

Номер ответа: 9
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #9 Добавлено: 30.12.08 18:32
А всякие проверки и прочее можно уже самому доделать

можно и доделать, если ты понимаешь что делаешь и как это работает. А большинство тупо копируют код совершенно не думая и не понимая что там происходит (к вопросу: а нафига тут 0 и почему в этой строке?), а потом орут что код не рабочий когда вываливается исключение.. или того хуже начинают юзать извращения типа On error resume next

Ответить

Номер ответа: 10
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #10
Добавлено: 31.12.08 03:37
А большинство тупо копируют код совершенно не думая и не понимая что там происходит (к вопросу: а нафига тут 0 и почему в этой строке?), а потом орут что код не рабочий когда вываливается исключение.. или того хуже начинают юзать извращения типа On error resume next
Я то как раз и спросил чтобы разобраться и теперь всё понял! код я назвал рабочим и поблагодарил! On error resume next - Это классная вещь

Ответить

Номер ответа: 11
Автор ответа:
 



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

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #11
Добавлено: 31.12.08 17:27
Naix пишет:
On error resume next - Это классная вещь

Вот тут я с тобой совершенно не соглашусь, чувак =) Как и большинство людей, которые не первый год в бейсике. Это самый злой, некрасивый, тупой и неэффективный способ обработки ошибок.

Ответить

Номер ответа: 12
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #12 Добавлено: 31.12.08 19:18
Это самый злой, некрасивый, тупой и неэффективный способ обработки ошибок.

+1

Ответить

Номер ответа: 13
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #13 Добавлено: 31.12.08 19:35
к тому же в .NET(с его возможностями обработки ошибок) этот способ просто неуместен!

Ответить

Номер ответа: 14
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #14
Добавлено: 31.12.08 21:38
Naix пишет:
On error resume next - Это классная вещь

ппц... весь праздник испортил... знал ведь, не надо сюда лезть...

p.s. С НОВЫМ 2009 ГОДОМ!!! =)

Ответить

Номер ответа: 15
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #15 Добавлено: 15.01.09 13:43
On error resume next и никаких проверок. Спасибо кстати

On Error... - это лоховство!!!

Ответить

Страница: 1 |

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



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