Problemas con Process

28/05/2006 - 22:19 por Carlos | Informe spam
He copiado este ejemplo de la pagina del Guille:

Dim cmd As System.Diagnostics.Process = New System.Diagnostics.Process
cmd.EnableRaisingEvents = True
cmd.Exited += New EventHandler(cmd_Exited)
cmd.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden
cmd.StartInfo.CreateNoWindow = True
cmd.StartInfo.RedirectStandardOutput = True
cmd.StartInfo.RedirectStandardInput = False
cmd.StartInfo.UseShellExecute = False
cmd.StartInfo.FileName = comando
cmd.StartInfo.Arguments = argumento

cmd.Start()
Me.lbInfo.Items.Add("Ejecutado " + comando)
Dim r As String = cmd.StandardOutput.ReadToEnd
cmd.WaitForExit(1000 * 5)

y no consigo hacerlo funcionar en VB, ¿alguien me puede explicar lo que hace
el siguiente comando?:

cmd.Exited += New EventHandler(cmd_Exited)

¿y para hacer esto mismo en VB?

gracias.

carlos
 

Leer las respuestas

#1 Alberto Poblacion
29/05/2006 - 07:53 | Informe spam
"Carlos" wrote in message
news:%
[...] ¿alguien me puede explicar lo que hace el siguiente comando?:

cmd.Exited += New EventHandler(cmd_Exited)



Lo que hace es conectar la subrutina cmd_Exited con el evento Exited
del objeto cmd.

¿y para hacer esto mismo en VB?



Hay un par de formas de conseguirlo.

Una es usar la sentencia AddHandler:
AddHandler cmd.Exited, AddressOf cmd_Exited

La otra forma es omitir por completo esa sentencia, declarar cmd con
WithEvents y poner Handles en la definición de la rutina:

Dim WithEvents cmd As System.Diagnostics.Process


Sub cmd_Exited(sender as Objects, e as EventArgs) Handles cmd.Exited

End Sub


En ambos casos lo que se consigue es que se ejecute automáticamente la
subrutina cmd_Exited cuando termina de ejecutarse el proceso que has
arrancado con Process.Start.

Preguntas similares