Начните что-нибудь, используя процесс. Начать в VB.NET

Начало метод Процесс объект, возможно, является одним из наиболее недооцененных инструментов, доступных программисту. Как .СЕТЬ метод, Начало имеет ряд перегрузок, которые представляют собой различные наборы параметров, которые точно определяют, что делает метод. Перегрузки позволяют вам указать практически любой набор параметров, которые вы, возможно, захотите передать другому процессу при его запуске.

Что вы можете сделать с Процесс. Начало на самом деле ограничен только процессами, которые вы можете использовать с ним. Если вы хотите отобразить текстовый файл ReadMe в Блокноте, это так же просто, как:

Процесс. Start ( "readme.txt")
или.
Процесс. Пуск («Блокнот», «ReadMe.txt»)

В этом примере предполагается, что файл ReadMe находится в той же папке, что и программа, и что Notepad является приложением по умолчанию для типов файлов .txt и находится в пути к системной среде.

Процесс. Запуск аналогичен команде Shell в VB6

Для программистов, знакомых с Visual Basic 6, Процесс. Начало чем-то напоминает VB 6 Ракушка команда. В VB 6 вы бы использовали что-то вроде:

instagram viewer
lngPID = Shell ("MyTextFile.txt", vbNormalFocus)

Использование процесса. Начало

Вы можете использовать этот код, чтобы развернуть Блокнот и создать ProcessStartInfo объект, который вы можете использовать для более точного контроля:

Dim ProcessProperties как новый ProcessStartInfo
ProcessProperties. FileName = "Блокнот"
ProcessProperties. Аргументы = "myTextFile.txt"
ProcessProperties. WindowStyle = ProcessWindowStyle. Развернутое
Dim myProcess As Process = Process. Start (ProcessProperties)

Запуск скрытого процесса

Вы даже можете начать скрытый процесс.

ProcessProperties. WindowStyle = ProcessWindowStyle. скрытый
Но будь осторожен. Если вы не добавите больше кода для завершения процесса, вам, вероятно, придется завершить его в диспетчере задач. Скрытые процессы обычно используются только с процессами, которые не имеют какого-либо пользовательского интерфейса.

Получение имени процесса

Работать с Процесс. Начало как объект .NET дает вам много возможностей. Например, вы можете получить имя процесса, который был запущен. Этот код будет отображать «блокнот» в окне вывода:

Dim myProcess As Process = Process. Консоль запуска («MyTextFile.txt»). WriteLine (myProcess. Имя процесса)
Это было то, что вы могли не делать с VB6 Ракушка команда, потому что она запустила новое приложение асинхронно. С помощью WaitForExit может вызвать обратную проблему в .NET, потому что вам нужно запустить процесс в новом потоке, если вам нужно выполнить его асинхронно. Например, если вам нужно, чтобы компоненты оставались активными в форме, в которой был запущен процесс, и WaitForExit был казнен. Обычно эти компоненты не будут активными. Кодируйте это и убедитесь сами.

Один из способов остановить процесс - использовать Убийство метод.

myProcess. Убийство()

Этот код ждет десять секунд, а затем завершает процесс.

Однако иногда требуется принудительная задержка, чтобы процесс завершился, чтобы избежать ошибки.

myProcess. WaitForExit (10000)
'если процесс не завершится в течение
10 секунд, убей его
Если не мой процесс. HasExited Тогда
myProcess. Убийство()
End If
Threading. Нить. Сон (1)
Приставка. WriteLine ("Блокнот завершен:" _
& myProcess. ExitTime & _
Окружающая обстановка. Новая линия & _
"Код выхода:" & _
myProcess. ExitCode)

В большинстве случаев, это, вероятно, хорошая идея поместить вашу обработку в С помощью блок, чтобы гарантировать, что ресурсы, используемые процессом, освобождены.

Использование myProcess As Process = New Process
«Ваш код идет сюда
Конец использования

Чтобы сделать все это еще проще, есть даже Процесс Компонент, который вы можете добавить в свой проект, чтобы вы могли делать много вещей, показанных выше, во время разработки, а не во время выполнения.

Одной из вещей, которая делает это намного проще, является кодирование событий, вызванных процессом, таких как событие, когда процесс завершился. Вы также можете добавить обработчик, используя следующий код:

разрешить процессу вызывать события
myProcess. EnableRaisingEvents = True
добавить обработчик события Exited
AddHandler myProcess. Выход, _
Обратись ко мне. ProcessExited
Закрытое подпроцессное исключение (отправитель ByVal как объект, _
ByVal e As System. EventArgs)
«Ваш код идет сюда
End Sub

Но просто выбрать событие для компонента намного проще.