Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual Basic .NET

Войти
Регистрация
Восстановить пароль
 
Nibutani Shinka
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 7
#1

Ошибка "Индекс вне границ массива" при остановке процесса - Visual Basic .NET

20.09.2015, 07:59. Просмотров 338. Ответов 5
Метки нет (Все метки)

Добрый день.
Есть форма на ней кнопка, при нажатии на кнопку должен остановиться процесс, всё бы ничего, вот только при остановке процесса вылетает ошибка: "Индекс вне границ массива"

Вот код:
vb.net
1
Process.GetProcessesByName("Divine updater")(0).Kill()
Я точно не знаю, как останавливать процесс, поэтому останавливал по информации из Свойства > Общие > Описание

Лазил на зарубежных форумах - ничего не нашёл, помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2015, 07:59
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка "Индекс вне границ массива" при остановке процесса (Visual Basic .NET):

.NET 4.x Индекс вне границ массива при дешифровке данных - Visual Basic .NET
И снова здравствуйте! На форуме Памирыч выкладывал код программы для тестирования, я немного его переработал. Необходимо прикрутить...

Ошибка "Индекс за пределами диапазона" при чтении массива классов из файла - Visual Basic .NET
Ошибка возникает до загрузки первой формы. Всю ночь просидел - так и не понял, что ему не нравится. У меня только одна коллекция в...

.NET 4.x Ошибка "Приведение строки "explorer.exe" к типу "Double" является недопустимым" при записи в реестр - Visual Basic .NET
Помогите, хочу получить доступ к winlogon, что бы изменять любое другое значение shell на explorer.exe(Для обхода winlock'ов) ...

Ошибка при запуске .exe файла из debug: "Приведение строки "Июнь" к типу "Double" является недопустимым" - Visual Basic .NET
Если запускать из самого проекта(F5), то все нормально, а если скомпилированный запустить, то выскакивает ошибка Подробная информация об...

.NET 4.x Обращение к столбцам DataGridView и ошибка "Индекс за пределами диапазона" - Visual Basic .NET
Случилась одна незадача. При заполнении DataGridView присоединяю таблицу полученную из БД MySQL. При попытке произвести действия со...

Индекс находится все границ массива при нахождении среднего арифметического его элементов - Visual Basic .NET
Помогите исправить ошибку, создаю программу в которой создаешь A массив из N элементов, и находишь среднее арифметеческое и геометрическое...

5
Yury Komar
Модератор
2355 / 2160 / 341
Регистрация: 27.01.2014
Сообщений: 3,852
Завершенные тесты: 1
20.09.2015, 10:20 #2
Nibutani Shinka, так ты нам то покажи как ты его остановил? КОД ПОКАЖИ. так ничего не понятно...
0
OwenGlendower
Супер-модератор
Эксперт .NET
8655 / 7660 / 2813
Регистрация: 17.03.2014
Сообщений: 15,045
Записей в блоге: 1
20.09.2015, 14:33 #3
Nibutani Shinka, если ошибка возникает в приведенной строке, то очевидно ни одного процесса с именем "Divine updater" не запущено. Если ты таким образом останавливаешь свой процесс, то так делать не следует. Если у тебя приложение WinForms/WPF с одним окном, то закрой его методом Close() и это завершит приложение. В более сложных сценариях можно завершать приложение с помощью вызова Applicatiion.Exit() или Applicatiion.Shutdown() (в WinForms и WPF соотственно).

Если ты завершаешь чужой приложение, то посмотри имя процесса в task manager, удали расширение и передавай его в метод GetProcessesByName(). Плюс добавь проверку что массив не пустой.
0
Nibutani Shinka
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 7
20.09.2015, 18:10  [ТС] #4
Цитата Сообщение от Yury Komar Посмотреть сообщение
Nibutani Shinka, так ты нам то покажи как ты его остановил? КОД ПОКАЖИ. так ничего не понятно...
Я тебе показал уже, код. Я им и останавливаю процес.

Цитата Сообщение от OwenGlendower Посмотреть сообщение
Если ты завершаешь чужой приложение, то посмотри имя процесса в task manager, удали расширение и передавай его в метод GetProcessesByName(). Плюс добавь проверку что массив не пустой.
А можно по-подробнее, а то я незнаю как это сделать.
0
OwenGlendower
Супер-модератор
Эксперт .NET
8655 / 7660 / 2813
Регистрация: 17.03.2014
Сообщений: 15,045
Записей в блоге: 1
20.09.2015, 20:59 #5
Цитата Сообщение от Nibutani Shinka Посмотреть сообщение
А можно по-подробнее, а то я незнаю как это сделать.
Объявляешь переменную типа Process(). Присваиваешь этой переменной результат выполнения метода Process.GetProcessesByName. Проверяешь что длина массива (свйоство Length) больше нуля и если да, то вызываешь для первого элемента массива метод Kill.
0
voronbandit
0 / 0 / 0
Регистрация: 12.04.2015
Сообщений: 29
21.09.2015, 10:58 #6
Попробуй так
vb.net
1
2
3
4
        Dim proc As System.Diagnostics.Process
        For Each proc In System.Diagnostics.Process.GetProcessesByName("Divine updater")
            proc.Kill()
        Next
либо так
vb.net
1
2
3
4
5
6
        Dim proc As System.Diagnostics.Process
        For Each proc In System.Diagnostics.Process.GetProcessesByName("Divine updater")
            If Not proc Is Nothing Then
                proc.Kill()
            End If
        Next
0
21.09.2015, 10:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2015, 10:58
Привет! Вот еще темы с ответами:

Индекс находился вне границы массива при заполнении случайными числами - Visual Basic .NET
есть код на фото, выдает ошибку не пойму из-за чего, вроде все правильно же делаю

"Приведение типа "|DBNull" к типу "String" при попытке загрузить данные из ячейки DataGridView в ComboBox - Visual Basic .NET
Доброго времени суток! Сама ошибка "Приведение типа "|DBNull" к типу "String" является недопустимым." Строка: Form2.ComboBox1.Text...

Обработка "null" в MS Access "Приведение типа "|DBNull" к типу "String" является недопустимым" - Visual Basic .NET
Здравствуйте. Работаю с базой MS Access Вывожу в DataGridView таблицу Проблема следующая, если у поля "классный руководитель" (тип -...

Индекс находится вне границы массива - Visual Basic .NET
"Индекс находится вне границы массива" как исправить?


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru