Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 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
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 AWР
![]()
ICQ: 345685652 
Вопросов: 38
Ответов: 106
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  30.12.08 13:52
       
    
       
  
Почему 0? Можешь подробней расписать об этом методе
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #3
       
Добавлено:  30.12.08 15:34
       
    
       
  
 
    
(0).Kill()
криво и безграмотно.. 
а если GetProcessesByName вернет null или пустой массив.. что тогда??? Да здравствует Exception?
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа:
 AWР
![]()
ICQ: 345685652 
Вопросов: 38
Ответов: 106
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  30.12.08 16:41
       
    
       
  
Все работает ок. Спс. Объясните пожалуйста почему именно ноль, что это за ноль? И почему он должен быть на той же строке
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа:
 AWР
![]()
ICQ: 345685652 
Вопросов: 38
Ответов: 106
      
 Web-сайт:  
 Профиль |  | #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
       
    
       
  
 
    
Правильней было бы проверить полученный массив на количество найденных элементов, и если равно еденице то просто убить,если же больше то перебрать их в цикле и убить.. 
Ну, думаю Crio просто показал сам принцип) А всякие проверки и прочее можно уже самому доделать по-моему)
		
	  
			 
	
		 
    
       
    
Номер ответа: 8 
      
Автор ответа:
 AWР
![]()
ICQ: 345685652 
Вопросов: 38
Ответов: 106
      
 Web-сайт:  
 Профиль |  | #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-сайт:  
 Профиль |  | #10
      
Добавлено:  31.12.08 03:37
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 11 
      
Автор ответа:
 
![]()
![]()
![]()
![]()
Администратор
ICQ: 278109632 
Вопросов: 42
Ответов: 3949
      
 Web-сайт:  
 Профиль |  | #11
      
Добавлено:  31.12.08 17:27
       
    
       
  
 
    
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
       
    
       
  
 
    
On error resume next - Это классная вещь  
ппц... весь праздник испортил... знал ведь, не надо сюда лезть...
p.s. С НОВЫМ 2009 ГОДОМ!!! 
		
	  
			 
	
		 
    
       
    
Номер ответа: 15 
      
Автор ответа:
 Artyom
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #15
       
Добавлено:  15.01.09 13:43
       
    
       
  
 
    
On Error... - это лоховство!!!