Запустите .exe с аргументами, но также проверьте, существует ли он в Visual Basic

#vb.net #parameters #arguments #exe

#vb.net #параметры #аргументы #exe

Вопрос:

Я не спал всю ночь, безуспешно пытаясь найти ответ.

Я очень новичок в кодировании в целом, поэтому над этой проблемой, вероятно, смеются, но в любом случае 🙂

Я создаю программу запуска для файла .exe с помощью Visual Basic. Программа запуска очень проста и имеет несколько кнопок. Одна из кнопок проверяет, существует ли .exe по правильному пути, если это не так, отображается окно ошибки, и если это так, запускается .exe. Однако для правильной работы этой программе нужны параметры / аргументы, и, поскольку у меня нет параметров, сама программа выдает ошибку. Как мне добавить параметры после файла .exe?

Вот мой код:

         Try
            If Shell(Application.StartupPath amp; "program.exe") Then
                Me.Close()

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

 

Комментарии:

1. Не используйте Shell в VB.NET . Это пережиток VB6. Вызовите Peocess.Start вместо этого, и, если вы прочитаете документацию по этому методу, будет очевидно, как передавать аргументы командной строки.

2. Кстати, вызовите File.Exists метод с загадочным именем, чтобы определить, существует ли файл.

3. Наконец, вызовите Path.Combine , чтобы объединить частичные пути к файлам и папкам.

Ответ №1:

Используйте этот код :

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

Надеюсь, это поможет 🙂

Комментарии:

1. Попробовал, но получил эту ошибку в процессе. Начальная строка: ‘File’ не объявлен. Он может быть недоступен из-за его уровня защиты.

2. @user6681334 Import System.IO

3. Спасибо, я добавил эту строку прямо в начало кода. Теперь программа запускается с аргументами, однако по какой-то причине окно ошибки «Файл не найден» вообще не отображается, когда .exe отсутствует. Есть идеи, почему?

4. @user6681334 Итак, у вас есть Imports System.IO , и вы все еще не можете получить доступ к File классу или вы имеете в виду путь к целевому файлу? В любом случае, используйте Dim target = Path.Combine(Application.StartupPath, "program.exe") и передайте переменную методам.

5. Я исправил это, добавив еще один if: If Not File.Exists(Application.StartupPath amp; "program.exe") Then MsgBox("File not found!.", MsgBoxStyle.Critical, "Error") End If