ProcessStartInfo ProcessStartInfo ProcessStartInfo ProcessStartInfo Class

Definition

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

public ref class ProcessStartInfo sealed
[System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
public sealed class ProcessStartInfo
type ProcessStartInfo = class
Public NotInheritable Class ProcessStartInfo
Inheritance
ProcessStartInfoProcessStartInfoProcessStartInfoProcessStartInfo
Attributes

Examples

The following code example demonstrates how to use the ProcessStartInfo class to start Internet Explorer, providing the destination URLs as ProcessStartInfo arguments.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // url's are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }
        
        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub 'OpenApplication

        ' Opens urls and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' url's are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub 'OpenWithArguments

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub 'OpenWithStartInfo

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub 'Main
    End Class 'MyProcess
End Namespace 'MyProcessSample

Remarks

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

You can use the ProcessStartInfo class for better control over the process you start. You must at least set the 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 FileName property for the Verb property. For example, you can specify "print" for a document type. Additionally, you can specify 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 FileName property, you can use the 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 RedirectStandardInput, RedirectStandardOutput, and RedirectStandardError properties to cause the process to get input from or return output to a file or other device. If you use the StandardInput, StandardOutput, or StandardError properties on the Process component, you must first set the corresponding value on the ProcessStartInfo property. Otherwise, the system throws an exception when you read or write to the stream.

Set the UseShellExecute property to specify whether to start the process by using the operating system shell. If UseShellExecute is set to false, the new process inherits the standard input, standard output, and standard error streams of the calling process, unless the RedirectStandardInput, RedirectStandardOutput, or RedirectStandardError properties, respectively, are set to true.

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

Note

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

Constructors

ProcessStartInfo() ProcessStartInfo() ProcessStartInfo() ProcessStartInfo()

Initializes a new instance of the ProcessStartInfo class without specifying a file name with which to start the process.

ProcessStartInfo(String) ProcessStartInfo(String) ProcessStartInfo(String) ProcessStartInfo(String)

Initializes a new instance of the ProcessStartInfo class and specifies a file name such as an application or document with which to start the process.

ProcessStartInfo(String, String) ProcessStartInfo(String, String) ProcessStartInfo(String, String) ProcessStartInfo(String, String)

Initializes a new instance of the ProcessStartInfo class, specifies an application file name with which to start the process, and specifies a set of command-line arguments to pass to the application.

Properties

ArgumentList ArgumentList ArgumentList ArgumentList

Gets a collection of command-line arguments to use when starting the application.

Arguments Arguments Arguments Arguments

Gets or sets the set of command-line arguments to use when starting the application.

CreateNoWindow CreateNoWindow CreateNoWindow CreateNoWindow

Gets or sets a value indicating whether to start the process in a new window.

Domain Domain Domain Domain

Gets or sets a value that identifies the domain to use when starting the process. If this value is null, the UserName property must be specified in UPN format.

Environment Environment Environment Environment

Gets the environment variables that apply to this process and its child processes.

EnvironmentVariables EnvironmentVariables EnvironmentVariables EnvironmentVariables

Gets search paths for files, directories for temporary files, application-specific options, and other similar information.

ErrorDialog ErrorDialog ErrorDialog ErrorDialog

Gets or sets a value indicating whether an error dialog box is displayed to the user if the process cannot be started.

ErrorDialogParentHandle ErrorDialogParentHandle ErrorDialogParentHandle ErrorDialogParentHandle

Gets or sets the window handle to use when an error dialog box is shown for a process that cannot be started.

FileName FileName FileName FileName

Gets or sets the application or document to start.

LoadUserProfile LoadUserProfile LoadUserProfile LoadUserProfile

Gets or sets a value that indicates whether the Windows user profile is to be loaded from the registry.

Password Password Password Password

Gets or sets a secure string that contains the user password to use when starting the process.

PasswordInClearText PasswordInClearText PasswordInClearText PasswordInClearText

Gets or sets the user password in clear text to use when starting the process.

RedirectStandardError RedirectStandardError RedirectStandardError RedirectStandardError

Gets or sets a value that indicates whether the error output of an application is written to the StandardError stream.

RedirectStandardInput RedirectStandardInput RedirectStandardInput RedirectStandardInput

Gets or sets a value indicating whether the input for an application is read from the StandardInput stream.

RedirectStandardOutput RedirectStandardOutput RedirectStandardOutput RedirectStandardOutput

Gets or sets a value that indicates whether the textual output of an application is written to the StandardOutput stream.

StandardErrorEncoding StandardErrorEncoding StandardErrorEncoding StandardErrorEncoding

Gets or sets the preferred encoding for error output.

StandardInputEncoding StandardInputEncoding StandardInputEncoding StandardInputEncoding
StandardOutputEncoding StandardOutputEncoding StandardOutputEncoding StandardOutputEncoding

Gets or sets the preferred encoding for standard output.

UserName UserName UserName UserName

Gets or sets the user name to use when starting the process. If you use the UPN format, user@DNS_domain_name, the Domain property must be null.

UseShellExecute UseShellExecute UseShellExecute UseShellExecute

Gets or sets a value indicating whether to use the operating system shell to start the process.

Verb Verb Verb Verb

Gets or sets the verb to use when opening the application or document specified by the FileName property.

Verbs Verbs Verbs Verbs

Gets the set of verbs associated with the type of file specified by the FileName property.

WindowStyle WindowStyle WindowStyle WindowStyle

Gets or sets the window state to use when the process is started.

WorkingDirectory WorkingDirectory WorkingDirectory WorkingDirectory

When the UseShellExecute property is false, gets or sets the working directory for the process to be started. When UseShellExecute is true, gets or sets the directory that contains the process to be started.

Methods

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Returns a string that represents the current object.

(Inherited from Object)

Security

SecurityPermission
for calling members of ProcessStartInfo. Demand value: LinkDemand; [NIB: Named Permission Sets](https://msdn.microsoft.com/library/08250d67-c99d-4ab0-8d2b-b0e12019f6e3): FullTrust.

Applies to

See also