Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is StartInfo (ProcessStartInfo) always empty?

Tags:

.net

process

According to MSDN:

If you did not use the Start method to start a process, the StartInfo property does not reflect the parameters used to start the process. For example, if you use GetProcesses to get an array of processes running on the computer, the StartInfo property of each Process does not contain the original file name or arguments used to start the process.

Okay, that makes perfect sense. My question is why are these parameters blank even when you do use Process.Start()?

For example:

    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

In this case even though I provided Arguments, that property is still empty:

alt text http://www.sg-squared.com/images/startinfo.png

What gives?

like image 754
Sean Gough Avatar asked Dec 05 '08 14:12

Sean Gough


2 Answers

You are still doing a GetProcess, thus it continues to work the same. The fact that you started it doesn't make a difference.

Process.Start(...) returns the process that you started. I expect that if you check the StartInfo property on that, it will be populated.

like image 81
Rob Prouse Avatar answered Sep 28 '22 00:09

Rob Prouse


You are getting a different Process instance back from GetProcessesByName that falls into the latter case of the statement on MSDN.

like image 32
leppie Avatar answered Sep 28 '22 00:09

leppie