#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