为什么StartInfo(ProcessStartInfo)总是为空?

Sea*_*ugh 7 .net process

根据MSDN:

如果未使用Start方法启动进程,则StartInfo属性不会反映用于启动进程的参数.例如,如果使用GetProcesses获取计算机上运行的进程数组,则每个进程StartInfo属性不包含用于启动进程的原始文件名或参数.

好的,这很有道理.我的问题是,即使你使用Process.Start(),为什么这些参数都是空白的?

例如:

    Dim startInfo As New ProcessStartInfo("firefox.exe")
    startInfo.Arguments = "www.stackoverflow.com"
    startInfo.WindowStyle = ProcessWindowStyle.Minimized
    Process.Start(startInfo)
    For Each proc As Process In Process.GetProcessesByName("firefox")
        Debug.Print(String.Format("ProcessID={0}; Arguments={1}", _
        proc.Id, proc.StartInfo.Arguments))
    Next proc
Run Code Online (Sandbox Code Playgroud)

在这种情况下,即使我提供了Arguments,该属性仍为空:

替代文字http://www.sg-squared.com/images/startinfo.png

是什么赋予了?

Rob*_*use 3

您仍在执行 GetProcess,因此它继续以相同的方式工作。事实上你开始了它并没有什么区别。

Process.Start(...) 返回您启动的进程。我希望如果您检查 StartInfo 属性,它将被填充。