En algunas circunstancias de una aplicacion (en especial del tipo cliente - servidor), esta inicia procesos del sistema operativo; los, cuales por alguna razon particular, pueden complicar la ejecucion de nuestro programa, por lo que es conveniente cerrarlos. Para ello, y para no escribir un metodo especial por cada aplicacion que creemos, deberiamos usar un metodo (en un modulo o clase utilitaria) como el que presento a continuacion. 

‘Cierra los procesos indicados que se tengan en memoria en la PC
Private Sub CerrarProceso(ByVal NombreProceso As String)
    ‘Cerramos el proceso indicado
    Dim aobjProcesses() As Process = Process.GetProcessesByName(NombreProceso)
    Dim objProcess As Process

    Try
        For i As Integer = 0 To aobjProcesses.GetUpperBound(0)
            objProcess = aobjProcesses(i)
            ‘Si encontramos un proceso abierto, vemos si se salió
            If Not objProcess.HasExited Then
                ‘No se salió. Debemos matar al proceso que está huérfano.
                objProcess.Kill()
            End If
        Next
    Catch ex As Exception
        ‘Emplear una forma de informar el error (el patron observador seria bueno para ello)
        Me.RegistrarLog(String.Format(Me.Recurso(”ErrorCierreProceso”), NombreProceso, ex.ToString), EventLogEntryType.Error)
    End Try
End Sub

 

 

 

Escribe un comentario