Comience algo usando el proceso. Comience en VB.NET

los comienzo método de la Proceso El objeto es posiblemente una de las herramientas menos apreciadas disponibles para un programador. Como un .RED método, comienzo tiene una serie de sobrecargas, que son diferentes conjuntos de parámetros que determinan exactamente lo que hace el método. Las sobrecargas le permiten especificar casi cualquier conjunto de parámetros que desee pasar a otro proceso cuando comience.

Que puedes hacer con Proceso. comienzo en realidad solo está limitado por los procesos que puede usar con él. Si desea mostrar su archivo Léame basado en texto en el Bloc de notas, es tan fácil como:

Proceso. Inicio ("ReadMe.txt")
o.
Proceso. Inicio ("bloc de notas", "ReadMe.txt")

Este ejemplo asume que el archivo ReadMe está en la misma carpeta que el programa y que el Bloc de notas es la aplicación predeterminada para los tipos de archivo .txt, y está en la ruta del entorno del sistema.

Proceso. Comience de manera similar al comando Shell en VB6

Para programadores familiarizados con Visual Basic 6,

instagram viewer
Proceso. comienzo es algo así como el VB 6 Cáscara mando. En VB 6, usarías algo como:

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

Usando el proceso. comienzo

Puede usar este código para iniciar el Bloc de notas maximizado y crear un ProcessStartInfo objeto que puede usar para un control más preciso:

Dim ProcessProperties como nuevo ProcessStartInfo
ProcessProperties. FileName = "bloc de notas"
ProcessProperties. Argumentos = "myTextFile.txt"
ProcessProperties. WindowStyle = ProcessWindowStyle. Maximizado
Dim myProcess As Process = Process. Inicio (ProcessProperties)

Iniciar un proceso oculto

Incluso puedes comenzar un proceso oculto.

ProcessProperties. WindowStyle = ProcessWindowStyle. Oculto
Pero ten cuidado. A menos que agregue más código para finalizar el proceso, probablemente tendrá que finalizarlo en el Administrador de tareas. Los procesos ocultos normalmente solo se usan con procesos que no tienen ningún tipo de interfaz de usuario.

Recuperando el Nombre de un Proceso

Trabajando con Proceso. comienzo como un objeto .NET te da mucha capacidad. Por ejemplo, puede recuperar el nombre del proceso que se inició. Este código mostrará "bloc de notas" en la ventana de salida:

Dim myProcess As Process = Process. Inicie la consola ("MyTextFile.txt"). WriteLine (myProcess. Nombre del proceso)
Esto era algo que podías no hacer con el VB6 Cáscara comando porque lanzó la nueva aplicación de forma asincrónica. Utilizando WaitForExit puede causar el problema inverso en .NET porque debe iniciar un proceso en un nuevo subproceso si necesita ejecutarlo de forma asincrónica. Por ejemplo, si necesita que los componentes permanezcan activos en un formulario donde se inició un proceso y WaitForExit Fue ejecutado. Normalmente, esos componentes no estarán activos. Codifícalo y compruébalo por ti mismo.

Una forma de obligar a detener el proceso es usar el Matar método.

myProcess. Matar()

Este código espera diez segundos y luego finaliza el proceso.

Sin embargo, a veces es necesario un retraso forzado para permitir que el proceso se complete para evitar un error.

myProcess. WaitForExit (10000)
'si el proceso no se completa dentro de
'10 segundos, mátalo
Si no es mi proceso. Has salido entonces
myProcess. Matar()
Terminara si
Enhebrado Hilo. Sueño (1)
Consola. WriteLine ("Bloc de notas terminado:" _
& myProcess. ExitTime & _
Ambiente. Nueva línea & _
"Código de salida:" & _
myProcess. ExitCode)

En la mayoría de los casos, probablemente sea una buena idea poner su procesamiento en un Utilizando bloque para garantizar que se liberen los recursos utilizados por el proceso.

Usar myProcess como proceso = Nuevo proceso
'Tu código va aquí
Terminar de usar

Para que todo esto sea aún más fácil de trabajar, incluso hay un Proceso componente que puede agregar a su proyecto para que pueda hacer muchas de las cosas que se muestran arriba en tiempo de diseño en lugar de tiempo de ejecución.

Una de las cosas que esto facilita mucho es la codificación de eventos generados por el proceso, como el evento cuando el proceso ha finalizado. También puede agregar un controlador utilizando un código como este:

'permitir que el proceso genere eventos
myProcess. EnableRaisingEvents = True
'agregar un controlador de eventos salido
AddHandler myProcess. Salido, _
Dirección de mí. ProcessExited
Subproceso privado salido (remitente ByVal como objeto, _
ByVal e como sistema. EventArgs)
'Tu código va aquí
End Sub

Pero simplemente seleccionar el evento para el componente es mucho más fácil.

instagram story viewer