Cómo Cerrar Un Programa Desde Visual Basic

Tabla de contenido:

Cómo Cerrar Un Programa Desde Visual Basic
Cómo Cerrar Un Programa Desde Visual Basic

Video: Cómo Cerrar Un Programa Desde Visual Basic

Video: Cómo Cerrar Un Programa Desde Visual Basic
Video: Abrir y cerrar programas Visual Basic .Net (Visual Studio 2017) 2024, Mayo
Anonim

El flexible y potente lenguaje de programación Visual Basic. NET, siendo una de las herramientas especialmente creadas para el desarrollo de aplicaciones para la plataforma Microsoft. NET, le permite utilizar plenamente todas sus capacidades. En particular, los componentes del espacio de nombres System. Diagnostics le permiten interactuar con procesos, registros de eventos y contadores de rendimiento. Por ejemplo, puede cerrar un programa de Visual Basic usando la clase Process.

Cómo cerrar un programa desde Visual Basic
Cómo cerrar un programa desde Visual Basic

Necesario

Microsoft Visual Studio

Instrucciones

Paso 1

Importe los espacios de nombres System, System. Diagnostics y System. Threading. Agregue las siguientes líneas de código al comienzo del módulo:

Sistema de Importaciones

Sistema de Importaciones.

Sistema de Importaciones.

Esto es solo por la conveniencia de usar los componentes asociados con estos espacios de nombres.

Paso 2

Obtén los datos del proceso a cerrar. Utilice el objeto de clase System. Diagnostics. Process. Declare una variable de esta clase:

Dim oProc como proceso

Luego use algún método para encontrar el proceso requerido.

Paso 3

Si el programa, que deberá cerrarse en el futuro, lo inicia la aplicación que se está desarrollando, simplemente guarde el objeto devuelto por el método Start al inicio:

oProc = Process. Start ("app.exe")

Paso 4

Si necesita cerrar un proceso con un identificador conocido, use el método estático GetProcessById de la clase Process para obtener el objeto correspondiente:

oProc = Process. GetProcessById (nID)

Donde nID es el identificador numérico del proceso.

Paso 5

Si solo se conocen algunas de las características del proceso objetivo, búsquelo. Obtenga la lista de procesos que se ejecutan en la máquina local como una matriz de objetos de la clase Process. Utilice los métodos GetProcesses (devuelve todos los procesos) o GetProcessesByName (solo procesos con el nombre dado):

Dim aoAllProcesses As Process () = Process. GetProcesses ()

Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")

Enumere los objetos de la matriz usando un bucle:

Dim oProc como proceso

Para cada oProc en aoAllProcesses

'acciones en oProc

Próximo

Recorra las propiedades MainModule, MainWindowTitle, ProcessName, etc. para encontrar el objeto deseado.

Paso 6

Intente terminar el programa enviando un mensaje de cierre a su ventana principal. Llame al método CloseMainWindow del objeto correspondiente al proceso de destino. Si es necesario, espere a que se complete la aplicación llamando a WaitForSalir, por ejemplo:

oProc. CloseMainWindow ()

oProc. WaitForSalir ()

Este método no garantiza la finalización del programa, ya que el mensaje de cierre de ventana a menudo se procesa y puede ignorarse.

Paso 7

Espere un poco de tiempo después de llamar a CloseMainWindow para asegurarse de que el programa finalice. Utilice el método Sleep de la clase Thread. Luego verifique el estado del proceso examinando la propiedad HasExited y, si no ha terminado, llame al método Kill:

Thread. Sleep (6000)

oProc. Refresh ()

Si no ha salido oProc. Entonces

oProc. Kill ()

Terminara si

Si lo desea, puede sondear el estado del proceso en un bucle, emitiendo avisos periódicos al usuario para que finalice la aplicación sin guardar datos. Y solo si acepta llamar a Kill.

Paso 8

Libere recursos del sistema después de que el programa termine con el método Cerrar:

oProc. Close ()

Paso 9

Para evitar errores inesperados durante la ejecución de la aplicación, coloque todo el algoritmo de cierre del programa en un bloque Try-Catch-End Try. Implemente el manejo de excepciones completo con mensajes de diagnóstico, si es necesario.

Recomendado: