System.Diagnostics.ProcessStartInfo Class

Specifies a set of values that are used when you start a process.

See Also: ProcessStartInfo Members


public sealed class ProcessStartInfo


System.Diagnostics.ProcessStartInfo is used together with the System.Diagnostics.Process component. When you start a process using the System.Diagnostics.Process class, you have access to process information in addition to that available when attaching to a running process.

You can use the System.Diagnostics.ProcessStartInfo class for better control over the process you start. You must at least set the ProcessStartInfo.FileName property, either manually or using the constructor. The file name is any application or document. Here a document is defined to be any file type that has an open or default action associated with it. You can view registered file types and their associated applications for your computer by using the Folder Options dialog box, which is available through the operating system. The Advanced button leads to a dialog box that shows whether there is an open action associated with a specific registered file type.

In addition, you can set other properties that define actions to take with that file. You can specify a value specific to the type of the ProcessStartInfo.FileName property for the ProcessStartInfo.Verb property. For example, you can specify "print" for a document type. Additionally, you can specify ProcessStartInfo.Arguments property values to be command-line arguments to pass to the file's open procedure. For example, if you specify a text editor application in the ProcessStartInfo.FileName property, you can use the ProcessStartInfo.Arguments property to specify a text file to be opened by the editor.

Standard input is usually the keyboard, and standard output and standard error are usually the monitor screen. However, you can use the ProcessStartInfo.RedirectStandardInput, ProcessStartInfo.RedirectStandardOutput, and ProcessStartInfo.RedirectStandardError properties to cause the process to get input from or return output to a file or other device. If you use the Process.StandardInput, Process.StandardOutput, or Process.StandardError properties on the System.Diagnostics.Process component, you must first set the corresponding value on the System.Diagnostics.ProcessStartInfo property. Otherwise, the system throws an exception when you read or write to the stream.

Set ProcessStartInfo.UseShellExecute to specify whether to start the process by using the operating system shell.

You can change the value of any System.Diagnostics.ProcessStartInfo property up to the time that the process starts. After you start the process, changing these values has no effect.


This class contains a link demand at the class level that applies to all members. A System.Security.SecurityException is thrown when the immediate caller does not have full-trust permission. For details about security demands, see Link Demands.


Namespace: System.Diagnostics
Assembly: System (in System.dll)
Assembly Versions: 1.0.3300.0, 1.0.5000.0,,