He estado creando un pequeño ejemplo para ver como funciona el tema de los procesos con Shell
En este, uso el emulador M.A.M.E para listar en una caja de texto todos los clones de un juego predefinido . ( Puedo variar eso).
En caso de que el comando no exista mostrara una caja de dialogo mostrando un error.
Este es el código:
Private hProceso As Process
Public Sub btnSalir_Click()
Me.Close
End
Public Sub btnEjecutar_Click()
hProceso = Shell "mame -listclones " & "dangar" For Read Write As "Proceso"
End
Public Sub Proceso_Error(sError As String)
Message.Error(sError)
End
Public Sub Proceso_Read()
Dim scad As String
Line Input #Last, scad
txtSalida.Text &= scad & "\n"
End
Public Sub Proceso_Kill()
Print "Proceso finalizado"
End
Public Sub btnSalir_Click()
Me.Close
End
Public Sub btnEjecutar_Click()
hProceso = Shell "mame -listclones " & "dangar" For Read Write As "Proceso"
End
Public Sub Proceso_Error(sError As String)
Message.Error(sError)
End
Public Sub Proceso_Read()
Dim scad As String
Line Input #Last, scad
txtSalida.Text &= scad & "\n"
End
Public Sub Proceso_Kill()
Print "Proceso finalizado"
End
Comentaros que en la creación del manejador del proceso, logré ver que al escribir Proceso_...pude ver Error(),
pero los otros, tales como Read() o Kill() no vi que se mostrasen automáticamente. Se repetía el nombre del evento
que ya existía en el código.
En el caso de que el comando exista en el sistema muestra:
Luego en la consola muestra:
Citar:
En el caso de que el nombre del comando no exista muestra lo siguiente:
Y en la consola vuelve a presentar:
Citar:
Si yo no quisiera mostrar un mensaje de error, también podría hacer uso de una variable Booleana.
¿ Qué os parece la creación de un video-tutorial ?.
Para cuando nuestro maestro de vídeo tutoriales tenga tiempo.
Saludos