none
Cómo hacer para que un programa que ejecuta otro, lea las instrucciones que le doy. RRS feed

  • Pregunta

  • Tengo este código, y ocupo que después de ejecutar el Process.Start, hasta que se termina la ejecución del programa .lnk, ejecute la instrucción Timer1.Enabled=True?, todo lo ejecuta como una secuencia de instrucciones.

     Timer1.Enabled = False
                    Process.Start("c:\Users\Solinme\Desktop\see-oceánica.lnk")
                    Timer1.Enabled = True

    miércoles, 29 de marzo de 2017 21:28

Respuestas

  • Public Class Form1
        Dim WithEvents p As Process
        Dim a As Action
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Timer1.Enabled = False
            p = Process.Start("c:\Users\Solinme\Desktop\see-oceánica.lnk")
            p.EnableRaisingEvents = True
        End Sub
    
        Private Sub Terminado(sender As Object, e As EventArgs) Handles p.Exited
            Invoke(a)
        End Sub
    
        Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            Text = DateTime.Now.ToString
        End Sub
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Timer1.Enabled = True
            Timer1.Interval = 1000
    
            a = New Action(AddressOf Reiniciar)
        End Sub
    
        Private Sub Reiniciar()
            Timer1.Enabled = True
        End Sub
    End Class
    

    Cuando pulsas el botón, el programa externo es invocado. El evento Exited para ese proceso es instalado. Cuando el programa termina, invoco al delegado que reinicia el timer (Terminado ejecuta sobre el hilo secundario creado por Process para escuchar el evento sin bloquear el thread de la gui).

    miércoles, 29 de marzo de 2017 23:07

Todas las respuestas

  • Hola, 

    Te podría servir esto? 

    como Leandro lo propone ene ste link: https://social.msdn.microsoft.com/Forums/es-ES/353a8777-5c24-40a7-8d06-93d8c47e0253/comunicar-dos-aplicaciones-independientes?forum=vcses

    Saludos.


    Si serví a tu consulta, no olvides votar como útil.


    miércoles, 29 de marzo de 2017 21:43
  • Public Class Form1
        Dim WithEvents p As Process
        Dim a As Action
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Timer1.Enabled = False
            p = Process.Start("c:\Users\Solinme\Desktop\see-oceánica.lnk")
            p.EnableRaisingEvents = True
        End Sub
    
        Private Sub Terminado(sender As Object, e As EventArgs) Handles p.Exited
            Invoke(a)
        End Sub
    
        Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            Text = DateTime.Now.ToString
        End Sub
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Timer1.Enabled = True
            Timer1.Interval = 1000
    
            a = New Action(AddressOf Reiniciar)
        End Sub
    
        Private Sub Reiniciar()
            Timer1.Enabled = True
        End Sub
    End Class
    

    Cuando pulsas el botón, el programa externo es invocado. El evento Exited para ese proceso es instalado. Cuando el programa termina, invoco al delegado que reinicia el timer (Terminado ejecuta sobre el hilo secundario creado por Process para escuchar el evento sin bloquear el thread de la gui).

    miércoles, 29 de marzo de 2017 23:07
  • Buenísimo Walter...esta me sirvió...gracias!!!
    jueves, 30 de marzo de 2017 15:04