Почему StartInfo (ProcessStartInfo) всегда пуст?

по данным MSDN:

если вы не используете старт метод для запуска процесса,StartInfo свойство не отражает параметры, используемые для запуска процесса. Например, если вы используете GetProcesses чтобы получить массив процессов, запущенных на компьютере,StartInfo собственность каждого процесс не содержит исходного имени файла или аргументов, используемых для запуска процесс.

хорошо, это имеет смысл. Мой вопрос в том, почему эти параметры пусты, даже когда вы используете процесс.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

в этом случае, хотя я предоставил аргументы, это свойство все еще пусто:

alt текст http://www.sg-squared.com/images/startinfo.png

что это дает?

4 ответов


вы все еще делаете GetProcess, поэтому он продолжает работать одинаково. Тот факт, что ты начал, не имеет значения.


вы получаете другой экземпляр процесса от GetProcessesByName, который попадает в последний случай оператора на MSDN.


Тьфу, это расстраивает. Я думаю, что они, вероятно, могли бы сделать эту документацию немного более ясной, поскольку ее легко прочитать как "если вы используете процесс.Начните тогда, что информация будет доступна".

думаю, мне все-таки придется использовать WMI, Ну хорошо.