Ejecute el .exe con argumentos pero también compruebe si existe en Visual Basic

Me quedé despierto toda la noche intentando encontrar una respuesta sin suerte.

Soy muy nuevo en la codificación general así que este problema probablemente se ríe, pero de todos modos :)

Estoy haciendo un lanzador a un archivo .exe con Visual Basic. El lanzador es muy sencillo y tiene pocos botones. Uno de los botones comprueba si el .exe existe en la ruta correcta, si no lo hace, muestra una ventana de error y si lo hace, se ejecuta el .exe. Sin embargo, este programa necesita parámetros/argumentos para funcionar correctamente y ya que no tengo parámetros el programa en sí da un error. ¿Cómo agrego los parámetros después del .exe?

Aquí está mi código:

        Try
            If Shell(Application.StartupPath & "\program.exe") Then
                Me.Close()

            End If
        Catch ex As Exception
            MsgBox("File not found!", MsgBoxStyle.Critical, "Error")
        End Try
    End Sub```

Pregunta hecha hace 3 años, 4 meses, 28 días - Por codecrusaderx


3 Respuestas:

  • Use este código :

        Try
            If File.Exists(Application.StartupPath & "\program.exe") Then
                Process.Start(Application.StartupPath & "\program.exe","arguments")
                Me.Close()
            End If
        Catch ex As Exception
            MsgBox("File not found!", MsgBoxStyle.Critical, "Error")
        End Try
    

    Espero que ayude :-)

    Respondida el Dec 17, 2020 a las 11:19 - por compilerczar

    Votos positivos: 0 | Votos negativos: 0

  • Para ejecutar un programa .exe con argumentos desde Visual Basic, puedes usar la función Shell y pasar los argumentos como parte del comando. Aquí te dejo un ejemplo de cómo puedes modificar tu código para ejecutar el programa con argumentos:

    vb.net
    Try
        Dim arguments As String = "arg1 arg2 arg3" ' Define tus argumentos aquí
    
        If Shell(Application.StartupPath & "\program.exe " & arguments) > 0 Then
            Me.Close()
        Else
            MsgBox("Error al ejecutar el archivo.", MsgBoxStyle.Critical, "Error")
        End If
    Catch ex As Exception
        MsgBox("Archivo no encontrado!", MsgBoxStyle.Critical, "Error")
    End Try
    

    En el ejemplo anterior, la variable arguments contiene los argumentos que deseas pasar al programa ejecutable. Simplemente debes modificar esa cadena según los argumentos requeridos por tu programa. Luego, se concatena esa cadena a la ruta del programa .exe al llamar a la función Shell.

    Recuerda que los argumentos deben ir separados por espacios en la cadena arguments.

    Espero que esta solución te sea de ayuda. ¡Déjame saber si tienes alguna otra pregunta!

    Respondida el Dec 18, 2020 a las 11:21 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para agregar parámetros al ejecutar un archivo .exe desde Visual Basic, puedes utilizar el método Shell de la siguiente manera:

    vb
    Dim args As String = "parámetro1 parámetro2"
    Shell(Application.StartupPath & "\program.exe " & args)
    

    En tu caso específico, puedes modificar tu código de la siguiente manera:

    vb
            Try
                Dim args As String = "parámetros aquí"
                If Shell(Application.StartupPath & "\program.exe " & args) Then
                    Me.Close()
                End If
            Catch ex As Exception
                MsgBox("File not found!", MsgBoxStyle.Critical, "Error")
            End Try
    

    Recuerda reemplazar "parámetros aquí" con los parámetros reales que necesitas pasar a tu programa .exe.

    Respondida el Dec 18, 2020 a las 11:23 - por Gemini

    Votos positivos: 0 | Votos negativos: 0