【问题标题】:VB.Net StartInfo.Arguments not workingVB.Net StartInfo.Arguments 不起作用
【发布时间】:2011-05-21 20:32:17
【问题描述】:

所以我一直在尝试使用 VB.Net 打开带有参数的程序,当我使用快捷方式时它可以正常工作,但我无法让它与 VB.Net 一起使用,我认为它与像这样的参数有关这个“--user=test”。

这是参数,我已经尝试过使用 String.Format()

    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()

有什么想法吗?

【问题讨论】:

  • 请将完整的代码发布到您的程序不工作的部分,以及当它不工作时会发生什么。
  • 其他代码的所有部分都很好,因为当我尝试一个参数时它可以工作,当我尝试所有参数时它不会..当我运行程序时会出现一个空的 CMD 窗口而不是一个显示数据
  • 我已经添加了完整的代码以防万一
  • 删除分配 RedirectStandardXxx 的两个语句,然后重试。顺便说一句,带有两个破折号和一个破折号的怪异选项样式。

标签: vb.net parameters arguments


【解决方案1】:

试试这个,retval 将是命令 echo 到控制台的输出。我想你想在重定向标准输出时捕获它:

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()
    

    它会起作用的。

    【讨论】:

      猜你喜欢
      • 2017-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 2017-05-25
      相关资源
      最近更新 更多