VB.Net StartInfo.Аргументы не работают

#vb.net #parameters #arguments

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

Вопрос:

Итак, я пытался использовать VB.Net чтобы открыть программу с параметрами, она отлично работает, когда я использую ярлык, но я просто не могу заставить ее работать с VB.Net я думаю, что это как-то связано с параметром, подобным этому «—user =test».

Вот аргументы, и я уже пробовал использовать String.Форматирование()

     Dim CMD As New Process
    CMD.StartInfo.FileName = "C:test.exe"
    CMD.StartInfo.Arguments = "--user=test --pass=test -o test -p 1025 -d0 --verbose -f 60"
    CMD.StartInfo.UseShellExecute = False
    CMD.StartInfo.RedirectStandardInput = True
    CMD.StartInfo.RedirectStandardOutput = True
    CMD.StartInfo.CreateNoWindow = False
    CMD.Start()
  

есть идеи?

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

1. Пожалуйста, опубликуйте полный код той части вашей программы, которая не работает, вместе с тем, что происходит, когда она не работает.

2. Все части другого кода в порядке, потому что, когда я пробую один параметр, он работает, когда я пробую все эти, он не работает .. и когда я запускаю программу, вместо одного окна с данными появляется пустое окно CMD

3. Я добавил полный код на всякий случай

4. Удалите два оператора, которые назначают RedirectStandardXxx, и повторите попытку. Кстати, странный стиль параметра как с двумя тире, так и с одним.

Ответ №1:

Попробуйте это, retval будет выводом команд echo на консоль. Я полагаю, вы хотите зафиксировать это при перенаправлении std:

 Dim CMD As New Process
CMD.StartInfo.FileName = "C:test.exe"
CMD.StartInfo.Arguments = "--user=test --pass=test -o test -p 1025 -d0 --verbose -f 60"
CMD.StartInfo.UseShellExecute = False
CMD.StartInfo.RedirectStandardInput = True
CMD.StartInfo.RedirectStandardOutput = True
CMD.StartInfo.CreateNoWindow = True
CMD.Start()

Dim retval As String = CMD.StandardOutput.ReadToEnd

CMD.WaitForExit()
  

Ответ №2:

Создайте экземпляр вашего процесса следующим образом:

 Dim myProcess As New System.Diagnostics.Process()
  

не нравится:

 Dim myProcess As New Process()
  

Это сработает.