Process.Start Methode

Definition

Startet eine Prozessressource und ordnet sie einer Process-Komponente zu.Starts a process resource and associates it with a Process component.

Überlädt

Start(String, String, String, SecureString, String)

Startet eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten, eines Benutzernamens, eines Kennworts und einer Domäne und ordnet die Ressource einer neuen Process-Komponente zu.Starts a process resource by specifying the name of an application, a set of command-line arguments, a user name, a password, and a domain and associates the resource with a new Process component.

Start(String, String, SecureString, String)

Startet eine Prozessressource durch Angeben des Namens einer Anwendung, eines Benutzernamens und einer Domäne und ordnet die Ressource einer neuen Process-Komponente zu.Starts a process resource by specifying the name of an application, a user name, a password, and a domain and associates the resource with a new Process component.

Start(String, String)

Startet eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten und ordnet die Ressource einer neuen Process-Komponente zu.Starts a process resource by specifying the name of an application and a set of command-line arguments, and associates the resource with a new Process component.

Start()

Startet die von der StartInfo-Eigenschaft dieser Process-Komponente angegebene Prozessressource (oder verwendet sie erneut) und ordnet diese der Komponente zu.Starts (or reuses) the process resource that is specified by the StartInfo property of this Process component and associates it with the component.

Start(String)

Startet eine Prozessressource, indem der Name eines Dokuments oder einer Anwendungsdatei angegeben wird, und ordnet die Ressource einer neuen Process-Komponente zu.Starts a process resource by specifying the name of a document or application file and associates the resource with a new Process component.

Start(ProcessStartInfo)

Startet die Prozessressource, die durch den Parameter mit den Startinformationen für den Prozess angegeben wird (z. B. den Dateinamen des zu startenden Prozesses), und ordnet die Ressource einer neuen Process-Komponente zu.Starts the process resource that is specified by the parameter containing process start information (for example, the file name of the process to start) and associates the resource with a new Process component.

Start(String, IEnumerable<String>)

Hiermit wird eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten gestartet.Starts a process resource by specifying the name of an application and a set of command line arguments.

Start(String, String, String, SecureString, String)

Wichtig

Diese API ist nicht CLS-kompatibel.

Startet eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten, eines Benutzernamens, eines Kennworts und einer Domäne und ordnet die Ressource einer neuen Process-Komponente zu.Starts a process resource by specifying the name of an application, a set of command-line arguments, a user name, a password, and a domain and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Diagnostics.Process? Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
[<System.CLSCompliant(false)>]
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String, userName As String, password As SecureString, domain As String) As Process

Parameter

fileName
String

Der Name einer Anwendungsdatei, die in dem Prozess ausgeführt werden soll.The name of an application file to run in the process.

arguments
String

Befehlszeilenargumente, die beim Starten des Prozesses übergeben werden sollen.Command-line arguments to pass when starting the process.

userName
String

Der beim Starten des Prozesses zu verwendende Benutzername.The user name to use when starting the process.

password
SecureString

Eine SecureString, die das beim Starten des Prozesses zu verwendende Kennwort enthält.A SecureString that contains the password to use when starting the process.

domain
String

Die Domäne, die beim Starten des Prozesses verwendet werden soll.The domain to use when starting the process.

Gibt zurück

Process

Ein neuer Process, der der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wurde.A new Process that is associated with the process resource, or null if no process resource is started. Beachten Sie, dass ein neuer Prozess, der parallel zu bereits ausgeführten Instanzen des gleichen Prozesses gestartet wird, unabhängig von den anderen Instanzen ist.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true festgelegt ist.In addition, Start may return a non-null Process with its HasExited property already set to true. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.In this case, the started process may have activated an existing instance of itself and then exited.

Attribute

Ausnahmen

Es wurde kein Dateiname angegeben.No file name was specified.

Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.An error occurred when opening the associated file.

- oder --or-

Die in fileName angegebene Datei konnte nicht gefunden werden.The file specified in the fileName could not be found.

- oder --or- Die Summe aus der Länge der Argumente und der Länge des vollständigen Pfads zur zugehörigen Datei überschreitet 2080.The sum of the length of the arguments and the length of the full path to the associated file exceeds 2080. Die dieser Ausnahme zugeordnete Fehlermeldung kann wie folgt lauten: "Der an einen Systemaufruf weitergegebene Datenbereich ist zu klein."The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." oder "Zugriff verweigert".or "Access is denied."

Das Prozessobjekt wurde bereits verworfen.The process object has already been disposed.

Dieser Member, die unter Linux oder macOS nicht unterstützt wird (nur .NET Core).This member is not supported on Linux or macOS (.NET Core only).

Hinweise

Verwenden Sie diese Überladung, um einen neuen Prozess und seinen primären Thread zu erstellen, indem Sie den Dateinamen, die Befehlszeilenargumente, den Benutzernamen, das Kennwort und die Domäne angeben.Use this overload to create a new process and its primary thread by specifying its file name, command-line arguments, user name, password, and domain. Der neue Prozess führt dann die angegebene ausführbare Datei im Sicherheitskontext der angegebenen Anmelde Informationen (Benutzer, Domäne und Kennwort) aus.The new process then runs the specified executable file in the security context of the specified credentials (user, domain, and password).

Hinweis

Wenn sich die ausführbare Datei auf einem Remote Laufwerk befindet, müssen Sie die Netzwerkfreigabe mit einem URI (Uniform Resource Identifier) identifizieren, nicht mit einem verknüpften Laufwerk Buchstaben.When the executable file is located on a remote drive, you must identify the network share by using a uniform resource identifier (URI), not a linked drive letter.

Hinweis

Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null wird zurückgegeben.If the address of the executable file to start is a URL, the process is not started and null is returned.

Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Instanz zu erstellen Process .This overload lets you start a process without first creating a new Process instance. Die-Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process -Instanz, zum Festlegen der FileName Arguments Eigenschaften,, UserName , Password und Domain der- StartInfo Eigenschaft sowie zum Aufrufen von Start für die- Process Instanz.The overload is an alternative to the explicit steps of creating a new Process instance, setting the FileName, Arguments, UserName, Password, and Domain properties of the StartInfo property, and calling Start for the Process instance.

Ebenso wie das Dialogfeld " Ausführen " einen Namen einer ausführbaren Datei mit oder ohne die Erweiterung ". exe" akzeptieren kann, ist die Erweiterung ". exe" im- fileName Parameter optional.Similarly, in the same way that the Run dialog box can accept an executable file name with or without the .exe extension, the .exe extension is optional in the fileName parameter. Beispielsweise können Sie den fileName Parameter entweder auf "Notepad.exe" oder "Notepad" festlegen.For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad". Wenn der- fileName Parameter eine ausführbare Datei darstellt, stellt der- arguments Parameter möglicherweise eine Datei dar, die ausgeführt werden soll, z. b. die Textdatei in Notepad.exe myfile.txt .If the fileName parameter represents an executable file, the arguments parameter might represent a file to act upon, such as the text file in Notepad.exe myfile.txt.

Hinweis

Der Dateiname muss eine ausführbare Datei in den Start über Ladungen mit userName den password Parametern, und darstellen domain .The file name must represent an executable file in the Start overloads that have userName, password, and domain parameters.

Wenn Sie verwenden, Start um einen Prozess zu starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren, dass Sie die Systemressourcen verlieren.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill.Close processes using CloseMainWindow or Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.You can check whether a process has already been closed by using its HasExited property.

Gilt für:

Start(String, String, SecureString, String)

Wichtig

Diese API ist nicht CLS-kompatibel.

Startet eine Prozessressource durch Angeben des Namens einer Anwendung, eines Benutzernamens und einer Domäne und ordnet die Ressource einer neuen Process-Komponente zu.Starts a process resource by specifying the name of an application, a user name, a password, and a domain and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Diagnostics.Process? Start (string fileName, string userName, System.Security.SecureString password, string domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
[<System.CLSCompliant(false)>]
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, userName As String, password As SecureString, domain As String) As Process

Parameter

fileName
String

Der Name einer Anwendungsdatei, die in dem Prozess ausgeführt werden soll.The name of an application file to run in the process.

userName
String

Der beim Starten des Prozesses zu verwendende Benutzername.The user name to use when starting the process.

password
SecureString

Eine SecureString, die das beim Starten des Prozesses zu verwendende Kennwort enthält.A SecureString that contains the password to use when starting the process.

domain
String

Die Domäne, die beim Starten des Prozesses verwendet werden soll.The domain to use when starting the process.

Gibt zurück

Process

Ein neuer Process, der der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wurde.A new Process that is associated with the process resource, or null if no process resource is started. Beachten Sie, dass ein neuer Prozess, der parallel zu bereits ausgeführten Instanzen des gleichen Prozesses gestartet wird, unabhängig von den anderen Instanzen ist.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true festgelegt ist.In addition, Start may return a non-null Process with its HasExited property already set to true. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.In this case, the started process may have activated an existing instance of itself and then exited.

Attribute

Ausnahmen

Es wurde kein Dateiname angegeben.No file name was specified.

Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.There was an error in opening the associated file.

- oder --or-

Die in fileName angegebene Datei konnte nicht gefunden werden.The file specified in the fileName could not be found.

Das Prozessobjekt wurde bereits verworfen.The process object has already been disposed.

Dieser Member, die unter Linux oder macOS nicht unterstützt wird (nur .NET Core).This member is not supported on Linux or macOS (.NET Core only).

Beispiele

Im folgenden Codebeispiel wird die Verwendung dieser Überladung zum Starten einer ausführbaren Datei veranschaulicht. Außerdem wird veranschaulicht, wie ein ausgelöst Win32Exception wird, wenn versucht wird, eine Anwendung zu starten, die einer nicht ausführbaren Datei zugeordnet ist.The following code example shows the use of this overload to start an executable file and also demonstrates the throwing of a Win32Exception when an attempt is made to start an application associated with a nonexecutable file.

// NOTE: This example requires a text.txt file file in your Documents folder
using System;
using System.Diagnostics;
using System.Security;
using System.ComponentModel;

class Example
{
    static void Main()
    {
        Console.Write("Enter your domain: ");
        string domain = Console.ReadLine();
        Console.Write("Enter you user name: ");
        string uname = Console.ReadLine();
        Console.Write("Enter your password: ");
        SecureString password = new SecureString();
        ConsoleKeyInfo key;
        do
        {
            key = Console.ReadKey(true);

            // Ignore any key out of range.
            if (((int)key.Key) >= 33 && ((int)key.Key <= 90) && key.Key != ConsoleKey.Enter)
            {
                // Append the character to the password.
                password.AppendChar(key.KeyChar);
                Console.Write("*");
            }
            // Exit if Enter key is pressed.
        } while (key.Key != ConsoleKey.Enter);
        Console.WriteLine();

        try
        {
            Console.WriteLine("\nTrying to launch NotePad using your login information...");
            Process.Start("notepad.exe", uname, password, domain);
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\";

        try
        {
            // The following call to Start succeeds if test.txt exists.
            Console.WriteLine("\nTrying to launch 'text.txt'...");
            Process.Start(path + "text.txt");
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        try
        {
            // Attempting to start in a shell using this Start overload fails. This causes
            // the following exception, which is picked up in the catch block below:
            // The specified executable is not a valid application for this OS platform.
            Console.WriteLine("\nTrying to launch 'text.txt' with your login information...");
            Process.Start(path + "text.txt", uname, password, domain);
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            password.Dispose();
        }
    }
}
' This sample requires a text.txt file file in your documents folder.
' You'll also need to set the startup object in the project to Sub Main.
Imports System.Diagnostics
Imports System.Security
Imports System.ComponentModel

Module Program
    Sub Main()
        Console.Write("Enter your domain: ")
        Dim domain As String = Console.ReadLine()
        Console.Write("Enter you user name: ")
        Dim uname As String = Console.ReadLine()
        Console.Write("Enter your password: ")
        Dim password As New SecureString()
        Dim key As ConsoleKeyInfo
        Do
            key = Console.ReadKey(True)

            ' Ignore any key out of range.
            If key.Key >= 33 AndAlso key.Key <= 90 AndAlso key.Key <> ConsoleKey.Enter Then
                ' Append the character to the password.
                password.AppendChar(key.KeyChar)
                Console.Write("*")
            End If
            ' Exit if Enter key is pressed.
        Loop While key.Key <> ConsoleKey.Enter
        Console.WriteLine()

        Try
            Console.WriteLine(vbCrLf + "Trying to launch NotePad using your login information...")
            Process.Start("notepad.exe", uname, password, domain)
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        End Try

        Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\"

        Try
            ' The following call to Start succeeds if test.txt exists.
            Console.WriteLine(vbCrLf + "Trying to launch 'text.txt'...")
            Process.Start(path + "Text.txt")
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        End Try

        Try
            ' Attempting to start in a shell using this Start overload fails. This causes
            ' the following exception, which is picked up in the catch block below:
            ' The specified executable is not a valid application for this OS platform.
            Console.WriteLine(vbCrLf + "Trying to launch 'text.txt' with your login information...")
            Process.Start(path + "Text.txt", uname, password, domain)
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        Finally
            password.Dispose()
        End Try
    End Sub
End Module

Hinweise

Verwenden Sie diese Überladung, um einen neuen Prozess und seinen primären Thread zu erstellen, indem Sie den Dateinamen, den Benutzernamen, das Kennwort und die Domäne angeben.Use this overload to create a new process and its primary thread by specifying its file name, user name, password, and domain. Der neue Prozess führt dann die angegebene ausführbare Datei im Sicherheitskontext der angegebenen Anmelde Informationen (Benutzer, Domäne und Kennwort) aus.The new process then runs the specified executable file in the security context of the specified credentials (user, domain, and password).

Hinweis

Wenn sich die ausführbare Datei auf einem Remote Laufwerk befindet, müssen Sie die Netzwerkfreigabe mit einem URI (Uniform Resource Identifier) identifizieren, nicht mit einem verknüpften Laufwerk Buchstaben.When the executable file is located on a remote drive, you must identify the network share by using a uniform resource identifier (URI), not a linked drive letter.

Hinweis

Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null wird zurückgegeben.If the address of the executable file to start is a URL, the process is not started and null is returned.

Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Instanz zu erstellen Process .This overload lets you start a process without first creating a new Process instance. Die-Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen- Process Instanz, zum Festlegen der FileName UserName Eigenschaften,, Password und Domain der StartInfo -Eigenschaft und zum Aufrufen von Start für die- Process Instanz.The overload is an alternative to the explicit steps of creating a new Process instance, setting the FileName, UserName, Password, and Domain properties of the StartInfo property, and calling Start for the Process instance.

Ebenso wie das Dialogfeld " Ausführen " einen Namen einer ausführbaren Datei mit oder ohne die Erweiterung ". exe" akzeptieren kann, ist die Erweiterung ". exe" im- fileName Parameter optional.Similarly, in the same way that the Run dialog box can accept an executable file name with or without the .exe extension, the .exe extension is optional in the fileName parameter. Beispielsweise können Sie den fileName Parameter entweder auf "Notepad.exe" oder "Notepad" festlegen.For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad". Wenn der- fileName Parameter eine ausführbare Datei darstellt, stellt der- arguments Parameter möglicherweise eine Datei dar, die ausgeführt werden soll, z. b. die Textdatei in Notepad.exe myfile.txt .If the fileName parameter represents an executable file, the arguments parameter might represent a file to act upon, such as the text file in Notepad.exe myfile.txt.

Hinweis

Der Dateiname muss eine ausführbare Datei in den Start über Ladungen mit userName den password Parametern, und darstellen domain .The file name must represent an executable file in the Start overloads that have userName, password, and domain parameters.

Wenn Sie verwenden, Start um einen Prozess zu starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren, dass Sie die Systemressourcen verlieren.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill.Close processes using CloseMainWindow or Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.You can check whether a process has already been closed by using its HasExited property.

Gilt für:

Start(String, String)

Startet eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten und ordnet die Ressource einer neuen Process-Komponente zu.Starts a process resource by specifying the name of an application and a set of command-line arguments, and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments);
public static System.Diagnostics.Process Start (string fileName, string arguments);
static member Start : string * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String) As Process

Parameter

fileName
String

Der Name einer Anwendungsdatei, die in dem Prozess ausgeführt werden soll.The name of an application file to run in the process.

arguments
String

Befehlszeilenargumente, die beim Starten des Prozesses übergeben werden sollen.Command-line arguments to pass when starting the process.

Gibt zurück

Process

Ein neuer Process, der der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wurde.A new Process that is associated with the process resource, or null if no process resource is started. Beachten Sie, dass ein neuer Prozess, der parallel zu bereits ausgeführten Instanzen des gleichen Prozesses gestartet wird, unabhängig von den anderen Instanzen ist.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true festgelegt ist.In addition, Start may return a non-null Process with its HasExited property already set to true. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.In this case, the started process may have activated an existing instance of itself and then exited.

Ausnahmen

Der fileName-Parameter oder der arguments-Parameter ist null.The fileName or arguments parameter is null.

Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.An error occurred when opening the associated file.

- oder --or-

Die in fileName angegebene Datei konnte nicht gefunden werden.The file specified in the fileName could not be found.

- oder --or- Die Summe aus der Länge der Argumente und der Länge des vollständigen Pfads des Prozesses überschreitet 2080.The sum of the length of the arguments and the length of the full path to the process exceeds 2080. Die dieser Ausnahme zugeordnete Fehlermeldung kann wie folgt lauten: "Der an einen Systemaufruf weitergegebene Datenbereich ist zu klein."The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." oder "Zugriff verweigert".or "Access is denied."

Das Prozessobjekt wurde bereits verworfen.The process object has already been disposed.

Die PATH-Umgebungsvariable weist eine Zeichenfolge mit Anführungszeichen auf.The PATH environment variable has a string containing quotes.

Beispiele

Im folgenden Beispiel wird zunächst eine Instanz von Internet Explorer erzeugt und der Inhalt des Ordners "Favoriten" im Browser angezeigt.The following example first spawns an instance of Internet Explorer and displays the contents of the Favorites folder in the browser. Anschließend werden einige andere Instanzen von Internet Explorer gestartet und einige bestimmte Seiten oder Websites angezeigt.It then starts some other instances of Internet Explorer and displays some specific pages or sites. Schließlich wird Internet Explorer gestartet, wobei das Fenster beim Navigieren zu einer bestimmten Site minimiert wird.Finally it starts Internet Explorer with the window being minimized while navigating to a specific site.

#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()
{
    // URLs 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

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs 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

        ' 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

        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
    End Class
End Namespace 'MyProcessSample

Hinweise

Verwenden Sie diese Überladung, um eine Prozess Ressource zu starten, indem Sie den Dateinamen und die Befehlszeilenargumente angeben.Use this overload to start a process resource by specifying its file name and command-line arguments. Die-Überladung ordnet die Ressource einem neuen- Process Objekt zu.The overload associates the resource with a new Process object.

Hinweis

Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null wird zurückgegeben.If the address of the executable file to start is a URL, the process is not started and null is returned.

Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Instanz zu erstellen Process .This overload lets you start a process without first creating a new Process instance. Die-Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process -Instanz, zum Festlegen der FileName -und-Member Arguments der- StartInfo Eigenschaft und zum Aufrufen von Start für die- Process Instanz.The overload is an alternative to the explicit steps of creating a new Process instance, setting the FileName and Arguments members of the StartInfo property, and calling Start for the Process instance.

Das Starten eines Prozesses durch Angabe des Datei namens und der Argumente ähnelt der Eingabe des Datei namens und der Befehlszeilenargumente im Run Dialogfeld des Windows- Start Menüs.Starting a process by specifying its file name and arguments is similar to typing the file name and command-line arguments in the Run dialog box of the Windows Start menu. Daher muss der Dateiname keine ausführbare Datei darstellen.Therefore, the file name does not need to represent an executable file. Sie können einen beliebigen Dateityp werden für die die Erweiterung mit einer Anwendung, die auf dem System installierten zugeordnet wurde.It can be of any file type for which the extension has been associated with an application installed on the system. Der Dateiname kann z. b. die Erweiterung ". txt" aufweisen, wenn Sie Textdateien mit einem Editor (z. b. Editor) verknüpft haben, oder wenn Sie doc-Dateien mit einem Textverarbeitungs Tool verknüpft haben, z. b. Microsoft Word.For example the file name can have a .txt extension if you have associated text files with an editor, such as Notepad, or it can have a .doc if you have associated .doc files with a word processing tool, such as Microsoft Word. Ebenso wie das Run Dialogfeld den Namen einer ausführbaren Datei mit oder ohne Erweiterung. exe akzeptieren kann, ist die Erweiterung. exe im- fileName Parameter optional.Similarly, in the same way that the Run dialog box can accept an executable file name with or without the .exe extension, the .exe extension is optional in the fileName parameter. Beispielsweise können Sie den fileName Parameter entweder auf "Notepad.exe" oder "Notepad" festlegen.For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad". Wenn der- fileName Parameter eine ausführbare Datei darstellt, stellt der- arguments Parameter möglicherweise eine Datei dar, die ausgeführt werden soll, z. b. die Textdatei in Notepad.exe myfile.txt .If the fileName parameter represents an executable file, the arguments parameter might represent a file to act upon, such as the text file in Notepad.exe myfile.txt. Wenn der- fileName Parameter eine Befehlsdatei (. cmd) darstellt, arguments muss der-Parameter entweder ein-Argument oder ein-Argument enthalten, /c /k um anzugeben, ob das Befehlsfenster nach Abschluss beendet oder beibehalten wird.If the fileName parameter represents a command (.cmd) file, the arguments parameter must include either a "/c" or "/k" argument to specify whether the command window exits or remains after completion.

Im Gegensatz zu den anderen-über Ladungen ist die-Überladung, die Start keine Parameter hat, kein static Member.Unlike the other overloads, the overload of Start that has no parameters is not a static member. Verwenden Sie diese Überladung, wenn Sie bereits eine Process -Instanz erstellt und Startinformationen (einschließlich des Datei namens) angegeben haben und eine Prozess Ressource starten und der vorhandenen Instanz zuordnen möchten Process .Use that overload when you have already created a Process instance and specified start information (including the file name), and you want to start a process resource and associate it with the existing Process instance. Verwenden Sie eine der- static über Ladungen, wenn Sie eine neue-Komponente erstellen möchten, Process anstatt einen Prozess für eine vorhandene Komponente zu starten.Use one of the static overloads when you want to create a new Process component rather than start a process for an existing component. Mit dieser Überladung und der Überladung ohne Parameter können Sie den Dateinamen der zu startenden Prozess Ressource und die zu über gebenden Befehlszeilenargumente angeben.Both this overload and the overload that has no parameters allow you to specify the file name of the process resource to start and command-line arguments to pass.

Wenn Sie über eine in Ihrem System deklarierte Pfad Variable mit Anführungszeichen verfügen, müssen Sie diesen Pfad vollständig qualifizieren, wenn Sie einen Prozess starten, der an diesem Speicherort gefunden wird.If you have a path variable declared in your system using quotes, you must fully qualify that path when starting any process found in that location. Andernfalls findet das System den Pfad nicht.Otherwise, the system will not find the path. Wenn z. b. c:\mypath nicht in Ihrem Pfad vorhanden ist und Sie ihn mit Anführungszeichen hinzufügen, path = %path%;"c:\mypath" müssen Sie einen beliebigen Prozess in vollständig qualifizieren, c:\mypath Wenn Sie ihn starten.For example, if c:\mypath is not in your path, and you add it using quotation marks: path = %path%;"c:\mypath", you must fully qualify any process in c:\mypath when starting it.

Hinweis

ASP.NET Webseiten-und Server Steuerelement Code werden im Kontext des ASP.NET-Workerprozesses auf dem Webserver ausgeführt.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. Wenn Sie die- Start Methode in einer ASP.NET-Webseite oder einem Server Steuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt.If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. Der Prozess startet nicht in demselben Kontext wie der Client Browser und hat keinen Zugriff auf den Benutzer Desktop.The process does not start in the same context as the client browser, and does not have access to the user desktop.

Wenn Sie verwenden, Start um einen Prozess zu starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren, dass Sie die Systemressourcen verlieren.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill.Close processes using CloseMainWindow or Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.You can check whether a process has already been closed by using its HasExited property.

Hier ist ein Hinweis zu Apartmentzustände in verwalteten Threads erforderlich.A note about apartment states in managed threads is necessary here. Wenn UseShellExecute true in der-Eigenschaft der Prozess Komponente vorhanden ist StartInfo , stellen Sie sicher, dass Sie ein Threading Modell für Ihre Anwendung festgelegt haben, indem Sie das-Attribut [STAThread] für die- main() Methode festlegen.When UseShellExecute is true on the process component's StartInfo property, make sure you have set a threading model on your application by setting the attribute [STAThread] on the main() method. Andernfalls kann sich ein verwalteter Thread in einem- unknown Zustand befinden oder in den-Zustand versetzt werden, der sich in einem MTA Konflikt mit befindet UseShellExecute true .Otherwise, a managed thread can be in an unknown state or put in the MTA state, the latter of which conflicts with UseShellExecute being true. Für einige Methoden ist es erforderlich, dass der Apartment Zustand nicht ist unknown .Some methods require that the apartment state not be unknown. Wenn der Zustand nicht explizit festgelegt ist und die Anwendung auf eine solche Methode stößt, wird standardmäßig festgelegt, MTA und sobald Sie festgelegt ist, kann der Apartment Zustand nicht geändert werden.If the state is not explicitly set, when the application encounters such a method, it defaults to MTA, and once set, the apartment state cannot be changed. Bewirkt jedoch, MTA dass eine Ausnahme ausgelöst wird, wenn die Betriebssystemshell den Thread verwaltet.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

Siehe auch

Gilt für:

Start()

Startet die von der StartInfo-Eigenschaft dieser Process-Komponente angegebene Prozessressource (oder verwendet sie erneut) und ordnet diese der Komponente zu.Starts (or reuses) the process resource that is specified by the StartInfo property of this Process component and associates it with the component.

public:
 bool Start();
public bool Start ();
member this.Start : unit -> bool
Public Function Start () As Boolean

Gibt zurück

Boolean

true, wenn eine Prozessressource gestartet wird. false, wenn keine neue Prozessressource gestartet wird, sondern z. B. eine vorhandene Prozessressource wiederverwendet wird.true if a process resource is started; false if no new process resource is started (for example, if an existing process is reused).

Ausnahmen

In StartInfo der Komponente Process wurde kein Dateiname angegeben.No file name was specified in the Process component's StartInfo.

- oder --or-

Das UseShellExecute -Member der StartInfo -Eigenschaft ist true , während RedirectStandardInput, RedirectStandardOutputoder RedirectStandardError trueist.The UseShellExecute member of the StartInfo property is true while RedirectStandardInput, RedirectStandardOutput, or RedirectStandardError is true.

Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.There was an error in opening the associated file.

Das Prozessobjekt wurde bereits verworfen.The process object has already been disposed.

Methode, die von Betriebssystemen ohne Shellunterstützung wie z.B. Nano Server nicht unterstützt wird (nur .NET Core).Method not supported on operating systems without shell support such as Nano Server (.NET Core only).

Beispiele

Im folgenden Beispiel wird eine Instanz der- Process Klasse verwendet, um einen Prozess zu starten.The following example uses an instance of the Process class to start a process.

#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

int main()
{
    Process^ myProcess = gcnew Process;

    try
    {
        myProcess->StartInfo->UseShellExecute = false;
        // You can start any process, HelloWorld is a do-nothing example.
        myProcess->StartInfo->FileName = "C:\\HelloWorld.exe";
        myProcess->StartInfo->CreateNoWindow = true;
        myProcess->Start();
        // This code assumes the process you are starting will terminate itself. 
        // Given that is is started without a window so you cannot terminate it 
        // on the desktop, it must terminate itself or you can do it programmatically
        // from this application using the Kill method.
    }
    catch ( Exception^ e ) 
    {
        Console::WriteLine( e->Message );
    }
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        public static void Main()
        {
            try
            {
                using (Process myProcess = new Process())
                {
                    myProcess.StartInfo.UseShellExecute = false;
                    // You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
                    myProcess.StartInfo.CreateNoWindow = true;
                    myProcess.Start();
                    // This code assumes the process you are starting will terminate itself.
                    // Given that is is started without a window so you cannot terminate it
                    // on the desktop, it must terminate itself or you can do it programmatically
                    // from this application using the Kill method.
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        Public Shared Sub Main()
            Try
                Using myProcess As New Process()

                    myProcess.StartInfo.UseShellExecute = False
                    ' You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe"
                    myProcess.StartInfo.CreateNoWindow = True
                    myProcess.Start()
                    ' This code assumes the process you are starting will terminate itself. 
                    ' Given that is is started without a window so you cannot terminate it 
                    ' on the desktop, it must terminate itself or you can do it programmatically
                    ' from this application using the Kill method.
                End Using
            Catch e As Exception
                Console.WriteLine((e.Message))
            End Try
        End Sub
    End Class
End Namespace

Hinweise

Verwenden Sie diese Überladung, um eine Prozess Ressource zu starten und Sie der aktuellen Process Komponente zuzuordnen.Use this overload to start a process resource and associate it with the current Process component. Der Rückgabewert true gibt an, dass eine neue Prozess Ressource gestartet wurde.The return value true indicates that a new process resource was started. Wenn die vom-Member der-Eigenschaft angegebene Prozess Ressource FileName StartInfo bereits auf dem Computer ausgeführt wird, wird keine zusätzliche Prozess Ressource gestartet.If the process resource specified by the FileName member of the StartInfo property is already running on the computer, no additional process resource is started. Stattdessen wird die laufende Prozess Ressource wieder verwendet und false zurückgegeben.Instead, the running process resource is reused and false is returned.

Sie können eine ClickOnce-Anwendung starten, indem Sie den Speicherort angeben (z. b. eine Webadresse), von dem Sie die Anwendung ursprünglich installiert haben.You can start a ClickOnce application by specifying the location (for example, a Web address) from which you originally installed the application. Starten Sie keine ClickOnce-Anwendung, indem Sie den installierten Speicherort auf der Festplatte angeben.Do not start a ClickOnce application by specifying its installed location on your hard drive.

Hinweis

Wenn Sie Visual Studio verwenden, handelt es sich bei dieser Überladung der- Start Methode um die Methode, die Sie in den Code einfügen, nachdem Sie eine Process Komponente auf den Designer gezogen haben.If you are using Visual Studio, this overload of the Start method is the one that you insert into your code after you drag a Process component onto the designer. Verwenden Properties Sie das Fenster, um die Kategorie zu erweitern, StartInfo und schreiben Sie den entsprechenden Wert in die FileName Eigenschaft.Use the Properties window to expand the StartInfo category and write the appropriate value into the FileName property. Ihre Änderungen werden im Verfahren des Formulars angezeigt InitializeComponent .Your changes will appear in the form's InitializeComponent procedure.

Diese Überladung von Start ist keine static Methode.This overload of Start is not a static method. Sie müssen Sie aus einer Instanz der- Process Klasse abrufen.You must call it from an instance of the Process class. Vor Start dem Aufrufen von müssen Sie zuerst StartInfo Eigenschafts Informationen für diese Process Instanz angeben, da diese Informationen verwendet werden, um die zu startenden Prozess Ressourcen zu bestimmen.Before calling Start, you must first specify StartInfo property information for this Process instance, because that information is used to determine the process resource to start.

Die anderen über Ladungen der- Start Methode sind static Members.The other overloads of the Start method are static members. Sie müssen keine Instanz der-Komponente erstellen, Process bevor Sie diese über Ladungen der-Methode aufzurufen.You do not need to create an instance of the Process component before you call those overloads of the method. Stattdessen können Sie Start für die Process Klasse selbst und eine neue Process Komponente erstellen, wenn der Prozess gestartet wurde.Instead, you can call Start for the Process class itself, and a new Process component is created if the process was started. Oder null wird zurückgegeben, wenn ein Prozess wieder verwendet wurde.Or, null is returned if a process was reused. Die Prozess Ressource wird automatisch der neuen Komponente zugeordnet Process , die von der-Methode zurückgegeben wird Start .The process resource is automatically associated with the new Process component that is returned by the Start method.

Die Elemente StartInfo können verwendet werden, um die Funktionalität des Dialog Felds im Windows-Menü zu duplizieren Run Start .The StartInfo members can be used to duplicate the functionality of the Run dialog box of the Windows Start menu. Alle Elemente, die in eine Befehlszeile eingegeben werden können, können gestartet werden, indem die entsprechenden Werte in der-Eigenschaft festgelegt werden StartInfo .Anything that can be typed into a command line can be started by setting the appropriate values in the StartInfo property. Die einzige StartInfo Eigenschaft, die festgelegt werden muss, ist die- FileName Eigenschaft.The only StartInfo property that must be set is the FileName property. Die- FileName Eigenschaft muss keine ausführbare Datei sein.The FileName property does not have to be an executable file. Dabei kann es sich um einen beliebigen Dateityp handeln, für den die Erweiterung einer Anwendung zugeordnet wurde, die auf dem System installiert ist.It can be of any file type for which the extension has been associated with an application that is installed on the system. Die- FileName Eigenschaft kann z. b. die Erweiterung ". txt" aufweisen, wenn Sie Textdateien mit einem Editor (z. b. Notepad) verknüpft haben oder eine doc-Erweiterung haben, wenn Sie doc-Dateien mit einem Textverarbeitungs Tool verknüpft haben, z. b. Microsoft Word.For example, the FileName property can have a .txt extension if you have associated text files with an editor, such as Notepad, or it can have a .doc extension if you have associated .doc files with a word processing tool, such as Microsoft Word.

In der Befehlszeile können Sie Aktionen angeben, die für bestimmte Dateitypen ausgeführt werden sollen.In the command line, you can specify actions to take for certain types of files. Beispielsweise können Sie Dokumente drucken oder Textdateien bearbeiten.For example, you can print documents or edit text files. Geben Sie diese Aktionen mit dem-Member der- Verb StartInfo Eigenschaft an.Specify these actions using the Verb member of the StartInfo property. Für andere Dateitypen können Sie Befehlszeilenargumente angeben, wenn Sie die Datei im Run Dialogfeld starten.For other types of files, you can specify command-line arguments when you start the file from the Run dialog box. Sie können z. b. eine URL als Argument übergeben, wenn Sie den Browser als angeben FileName .For example, you can pass a URL as an argument if you specify your browser as the FileName. Diese Argumente können im StartInfo Member der Eigenschaft angegeben werden Arguments .These arguments can be specified in the StartInfo property's Arguments member.

Wenn Sie über eine in Ihrem System deklarierte Pfad Variable mit Anführungszeichen verfügen, müssen Sie diesen Pfad vollständig qualifizieren, wenn Sie einen Prozess starten, der an diesem Speicherort gefunden wird.If you have a path variable declared in your system using quotes, you must fully qualify that path when starting any process found in that location. Andernfalls findet das System den Pfad nicht.Otherwise, the system will not find the path. Wenn z. b. c:\mypath nicht in Ihrem Pfad vorhanden ist und Sie ihn mit Anführungszeichen hinzufügen, path = %path%;"c:\mypath" müssen Sie einen beliebigen Prozess in vollständig qualifizieren, c:\mypath Wenn Sie ihn starten.For example, if c:\mypath is not in your path, and you add it using quotation marks: path = %path%;"c:\mypath", you must fully qualify any process in c:\mypath when starting it.

Hinweis

ASP.NET Webseiten-und Server Steuerelement Code werden im Kontext des ASP.NET-Workerprozesses auf dem Webserver ausgeführt.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. Wenn Sie die- Start Methode in einer ASP.NET-Webseite oder einem Server Steuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt.If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. Der Prozess startet nicht in demselben Kontext wie der Client Browser und hat keinen Zugriff auf den Benutzer Desktop.The process does not start in the same context as the client browser, and does not have access to the user desktop.

Wenn Sie verwenden, Start um einen Prozess zu starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren, dass Sie die Systemressourcen verlieren.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill.Close processes using CloseMainWindow or Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.You can check whether a process has already been closed by using its HasExited property.

Hier ist ein Hinweis zu Apartmentzustände in verwalteten Threads erforderlich.A note about apartment states in managed threads is necessary here. Wenn UseShellExecute true in der-Eigenschaft der Prozess Komponente vorhanden ist StartInfo , stellen Sie sicher, dass Sie ein Threading Modell für Ihre Anwendung festgelegt haben, indem Sie das-Attribut [STAThread] für die- main() Methode festlegen.When UseShellExecute is true on the process component's StartInfo property, make sure you have set a threading model on your application by setting the attribute [STAThread] on the main() method. Andernfalls kann sich ein verwalteter Thread in einem- unknown Zustand befinden oder in den-Zustand versetzt werden, der sich in einem MTA Konflikt mit befindet UseShellExecute true .Otherwise, a managed thread can be in an unknown state or put in the MTA state, the latter of which conflicts with UseShellExecute being true. Für einige Methoden ist es erforderlich, dass der Apartment Zustand nicht ist unknown .Some methods require that the apartment state not be unknown. Wenn der Zustand nicht explizit festgelegt ist und die Anwendung auf eine solche Methode stößt, wird standardmäßig festgelegt, MTA und sobald Sie festgelegt ist, kann der Apartment Zustand nicht geändert werden.If the state is not explicitly set, when the application encounters such a method, it defaults to MTA, and once set, the apartment state cannot be changed. Bewirkt jedoch, MTA dass eine Ausnahme ausgelöst wird, wenn die Betriebssystemshell den Thread verwaltet.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

Siehe auch

Gilt für:

Start(String)

Startet eine Prozessressource, indem der Name eines Dokuments oder einer Anwendungsdatei angegeben wird, und ordnet die Ressource einer neuen Process-Komponente zu.Starts a process resource by specifying the name of a document or application file and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName);
public static System.Diagnostics.Process Start (string fileName);
static member Start : string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String) As Process

Parameter

fileName
String

Der Name eines Dokuments oder einer Anwendungsdatei, das bzw. die im Prozess ausgeführt werden soll.The name of a document or application file to run in the process.

Gibt zurück

Process

Ein neuer Process, der der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wurde.A new Process that is associated with the process resource, or null if no process resource is started. Beachten Sie, dass ein neuer Prozess, der parallel zu bereits ausgeführten Instanzen des gleichen Prozesses gestartet wird, unabhängig von den anderen Instanzen ist.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true festgelegt ist.In addition, Start may return a non-null Process with its HasExited property already set to true. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.In this case, the started process may have activated an existing instance of itself and then exited.

Ausnahmen

Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.An error occurred when opening the associated file.

- oder --or-

Die in fileName angegebene Datei konnte nicht gefunden werden.The file specified in the fileName could not be found.

Das Prozessobjekt wurde bereits verworfen.The process object has already been disposed.

Die PATH-Umgebungsvariable weist eine Zeichenfolge mit Anführungszeichen auf.The PATH environment variable has a string containing quotes.

Beispiele

Im folgenden Beispiel wird zunächst eine Instanz von Internet Explorer erzeugt und der Inhalt des Ordners "Favoriten" im Browser angezeigt.The following example first spawns an instance of Internet Explorer and displays the contents of the Favorites folder in the browser. Anschließend werden einige andere Instanzen von Internet Explorer gestartet und einige bestimmte Seiten oder Websites angezeigt.It then starts some other instances of Internet Explorer and displays some specific pages or sites. Schließlich wird Internet Explorer gestartet, wobei das Fenster beim Navigieren zu einer bestimmten Site minimiert wird.Finally it starts Internet Explorer with the window being minimized while navigating to a specific site.

#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()
{
    // URLs 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

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs 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

        ' 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

        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
    End Class
End Namespace 'MyProcessSample

Hinweise

Verwenden Sie diese Überladung, um eine Prozess Ressource zu starten, indem Sie den Dateinamen angeben.Use this overload to start a process resource by specifying its file name. Die-Überladung ordnet die Ressource einem neuen- Process Objekt zu.The overload associates the resource with a new Process object.

Hinweis

Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null wird zurückgegeben.If the address of the executable file to start is a URL, the process is not started and null is returned.

Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Instanz zu erstellen Process .This overload lets you start a process without first creating a new Process instance. Die-Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process -Instanz, zum Festlegen des FileName -Members der StartInfo -Eigenschaft und zum Aufrufen von Start für die- Process Instanz.The overload is an alternative to the explicit steps of creating a new Process instance, setting the FileName member of the StartInfo property, and calling Start for the Process instance.

Sie können eine ClickOnce-Anwendung starten, indem Sie den- fileName Parameter auf den Speicherort (z. b. eine Webadresse) festlegen, von dem aus Sie die Anwendung ursprünglich installiert haben.You can start a ClickOnce application by setting the fileName parameter to the location (for example, a Web address) from which you originally installed the application. Starten Sie keine ClickOnce-Anwendung, indem Sie den installierten Speicherort auf der Festplatte angeben.Do not start a ClickOnce application by specifying its installed location on your hard drive.

Das Starten eines Prozesses, indem der Dateiname angegeben wird, ähnelt dem Eingeben der Informationen im Run Dialogfeld des Windows- Start Menüs.Starting a process by specifying its file name is similar to typing the information in the Run dialog box of the Windows Start menu. Daher muss der Dateiname keine ausführbare Datei darstellen.Therefore, the file name does not need to represent an executable file. Sie können einen beliebigen Dateityp werden für die die Erweiterung mit einer Anwendung, die auf dem System installierten zugeordnet wurde.It can be of any file type for which the extension has been associated with an application installed on the system. Der Dateiname kann z. b. die Erweiterung ". txt" aufweisen, wenn Sie Textdateien mit einem Editor (z. b. Editor) verknüpft haben, oder wenn Sie doc-Dateien mit einem Textverarbeitungs Tool verknüpft haben, z. b. Microsoft Word.For example the file name can have a .txt extension if you have associated text files with an editor, such as Notepad, or it can have a .doc if you have associated .doc files with a word processing tool, such as Microsoft Word. Ebenso wie das Run Dialogfeld den Namen einer ausführbaren Datei mit oder ohne Erweiterung. exe akzeptieren kann, ist die Erweiterung. exe im- fileName Parameter optional.Similarly, in the same way that the Run dialog box can accept an executable file name with or without the .exe extension, the .exe extension is optional in the fileName parameter. Beispielsweise können Sie den fileName Parameter entweder auf "Notepad.exe" oder "Notepad" festlegen.For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad".

Diese Überladung lässt keine Befehlszeilenargumente für den Prozess zu.This overload does not allow command-line arguments for the process. Wenn Sie mindestens ein Befehlszeilenargument für den Prozess angeben müssen, verwenden Sie die- Process.Start(ProcessStartInfo) oder- Process.Start(String, String) über Ladungen.If you need to specify one or more command-line arguments for the process, use the Process.Start(ProcessStartInfo) or Process.Start(String, String) overloads.

Im Gegensatz zu den anderen-über Ladungen ist die-Überladung, die Start keine Parameter hat, kein static Member.Unlike the other overloads, the overload of Start that has no parameters is not a static member. Verwenden Sie diese Überladung, wenn Sie bereits eine Process -Instanz erstellt und Startinformationen (einschließlich des Datei namens) angegeben haben und eine Prozess Ressource starten und der vorhandenen Instanz zuordnen möchten Process .Use that overload when you have already created a Process instance and specified start information (including the file name), and you want to start a process resource and associate it with the existing Process instance. Verwenden Sie eine der- static über Ladungen, wenn Sie eine neue-Komponente erstellen möchten, Process anstatt einen Prozess für eine vorhandene Komponente zu starten.Use one of the static overloads when you want to create a new Process component rather than start a process for an existing component. Mit dieser Überladung und der Überladung ohne Parameter können Sie den Dateinamen der zu startenden Prozess Ressource angeben.Both this overload and the overload that has no parameters allow you to specify the file name of the process resource to start.

Wenn Sie über eine in Ihrem System deklarierte Pfad Variable mit Anführungszeichen verfügen, müssen Sie diesen Pfad vollständig qualifizieren, wenn Sie einen Prozess starten, der an diesem Speicherort gefunden wird.If you have a path variable declared in your system using quotes, you must fully qualify that path when starting any process found in that location. Andernfalls findet das System den Pfad nicht.Otherwise, the system will not find the path. Wenn z. b. c:\mypath nicht in Ihrem Pfad vorhanden ist und Sie ihn mit Anführungszeichen hinzufügen, path = %path%;"c:\mypath" müssen Sie einen beliebigen Prozess in vollständig qualifizieren, c:\mypath Wenn Sie ihn starten.For example, if c:\mypath is not in your path, and you add it using quotation marks: path = %path%;"c:\mypath", you must fully qualify any process in c:\mypath when starting it.

Hinweis

ASP.NET Webseiten-und Server Steuerelement Code werden im Kontext des ASP.NET-Workerprozesses auf dem Webserver ausgeführt.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. Wenn Sie die- Start Methode in einer ASP.NET-Webseite oder einem Server Steuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt.If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. Der Prozess startet nicht in demselben Kontext wie der Client Browser und hat keinen Zugriff auf den Benutzer Desktop.The process does not start in the same context as the client browser, and does not have access to the user desktop.

Wenn Sie verwenden, Start um einen Prozess zu starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren, dass Sie die Systemressourcen verlieren.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill.Close processes using CloseMainWindow or Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.You can check whether a process has already been closed by using its HasExited property.

Hier ist ein Hinweis zu Apartmentzustände in verwalteten Threads erforderlich.A note about apartment states in managed threads is necessary here. Wenn UseShellExecute true in der-Eigenschaft der Prozess Komponente vorhanden ist StartInfo , stellen Sie sicher, dass Sie ein Threading Modell für Ihre Anwendung festgelegt haben, indem Sie das-Attribut [STAThread] für die- main() Methode festlegen.When UseShellExecute is true on the process component's StartInfo property, make sure you have set a threading model on your application by setting the attribute [STAThread] on the main() method. Andernfalls kann sich ein verwalteter Thread in einem- unknown Zustand befinden oder in den-Zustand versetzt werden, der sich in einem MTA Konflikt mit befindet UseShellExecute true .Otherwise, a managed thread can be in an unknown state or put in the MTA state, the latter of which conflicts with UseShellExecute being true. Für einige Methoden ist es erforderlich, dass der Apartment Zustand nicht ist unknown .Some methods require that the apartment state not be unknown. Wenn der Zustand nicht explizit festgelegt ist und die Anwendung auf eine solche Methode stößt, wird standardmäßig festgelegt, MTA und sobald Sie festgelegt ist, kann der Apartment Zustand nicht geändert werden.If the state is not explicitly set, when the application encounters such a method, it defaults to MTA, and once set, the apartment state cannot be changed. Bewirkt jedoch, MTA dass eine Ausnahme ausgelöst wird, wenn die Betriebssystemshell den Thread verwaltet.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

Siehe auch

Gilt für:

Start(ProcessStartInfo)

Startet die Prozessressource, die durch den Parameter mit den Startinformationen für den Prozess angegeben wird (z. B. den Dateinamen des zu startenden Prozesses), und ordnet die Ressource einer neuen Process-Komponente zu.Starts the process resource that is specified by the parameter containing process start information (for example, the file name of the process to start) and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::Diagnostics::ProcessStartInfo ^ startInfo);
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
public static System.Diagnostics.Process Start (System.Diagnostics.ProcessStartInfo startInfo);
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
Public Shared Function Start (startInfo As ProcessStartInfo) As Process

Parameter

startInfo
ProcessStartInfo

Die ProcessStartInfo, die die Informationen zum Starten des Prozesses enthält, einschließlich Dateiname und Befehlszeilenargumente.The ProcessStartInfo that contains the information that is used to start the process, including the file name and any command-line arguments.

Gibt zurück

Process

Ein neuer Process, der der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wurde.A new Process that is associated with the process resource, or null if no process resource is started. Beachten Sie, dass ein neuer Prozess, der parallel zu bereits ausgeführten Instanzen des gleichen Prozesses gestartet wird, unabhängig von den anderen Instanzen ist.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true festgelegt ist.In addition, Start may return a non-null Process with its HasExited property already set to true. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.In this case, the started process may have activated an existing instance of itself and then exited.

Ausnahmen

In der FileName-Eigenschaft des startInfo-Parameters wurde kein Dateiname angegeben.No file name was specified in the startInfo parameter's FileName property.

- oder --or- Die UseShellExecute-Eigenschaft des startInfo-Parameters ist true, und die RedirectStandardInput-, RedirectStandardOutput- oder RedirectStandardError-Eigenschaft ist ebenfalls true.The UseShellExecute property of the startInfo parameter is true and the RedirectStandardInput, RedirectStandardOutput, or RedirectStandardError property is also true.

- oder --or- Die UseShellExecute-Eigenschaft des startInfo-Parameters ist true, und die UserName-Eigenschaft ist nicht null oder leer, oder die Password-Eigenschaft ist nicht null.The UseShellExecute property of the startInfo parameter is true and the UserName property is not null or empty or the Password property is not null.

Der startInfo-Parameter ist null.The startInfo parameter is null.

Das Prozessobjekt wurde bereits verworfen.The process object has already been disposed.

Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.An error occurred when opening the associated file.

- oder --or- Die in der FileName-Eigenschaft des startInfo-Parameters angegebene Datei wurde nicht gefunden.The file specified in the startInfo parameter's FileName property could not be found.

- oder --or- Die Summe aus der Länge der Argumente und der Länge des vollständigen Pfads des Prozesses überschreitet 2080.The sum of the length of the arguments and the length of the full path to the process exceeds 2080. Die dieser Ausnahme zugeordnete Fehlermeldung kann wie folgt lauten: "Der an einen Systemaufruf weitergegebene Datenbereich ist zu klein."The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." oder "Zugriff verweigert".or "Access is denied."

Methode, die von Betriebssystemen ohne Shellunterstützung wie z.B. Nano Server nicht unterstützt wird (nur .NET Core).Method not supported on operating systems without shell support such as Nano Server (.NET Core only).

Beispiele

Im folgenden Beispiel wird zunächst eine Instanz von Internet Explorer erzeugt und der Inhalt des Ordners "Favoriten" im Browser angezeigt.The following example first spawns an instance of Internet Explorer and displays the contents of the Favorites folder in the browser. Anschließend werden einige andere Instanzen von Internet Explorer gestartet und einige bestimmte Seiten oder Websites angezeigt.It then starts some other instances of Internet Explorer and displays some specific pages or sites. Schließlich wird Internet Explorer gestartet, wobei das Fenster beim Navigieren zu einer bestimmten Site minimiert wird.Finally it starts Internet Explorer with the window being minimized while navigating to a specific site.

Weitere Beispiele für die Verwendung dieser Methode finden Sie in den einzelnen Eigenschaften der- ProcessStartInfo Klasse.For additional examples of other uses of this method, refer to the individual properties of the ProcessStartInfo class.

#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()
{
    // URLs 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

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs 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

        ' 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

        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
    End Class
End Namespace 'MyProcessSample

Hinweise

Verwenden Sie diese Überladung, um eine Prozess Ressource durch Angeben einer-Instanz zu starten ProcessStartInfo .Use this overload to start a process resource by specifying a ProcessStartInfo instance. Die-Überladung ordnet die Ressource einem neuen- Process Objekt zu.The overload associates the resource with a new Process object.

Hinweis

Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null wird zurückgegeben.If the address of the executable file to start is a URL, the process is not started and null is returned.

Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Instanz zu erstellen Process .This overload lets you start a process without first creating a new Process instance. Die Verwendung dieser Überladung mit einem- ProcessStartInfo Parameter ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen- Process Instanz, zum Festlegen der zugehörigen StartInfo Eigenschaften und Start zum Aufrufen von für die- Process Instanz.Using this overload with a ProcessStartInfo parameter is an alternative to the explicit steps of creating a new Process instance, setting its StartInfo properties, and calling Start for the Process instance.

ProcessStartInfoWenn Sie eine-Instanz als-Parameter verwenden Start , können Sie mit der höchsten Kontrolle darüber aufrufen, was an den-Befehl übergeben wird, um den Prozess zu starten.Using a ProcessStartInfo instance as the parameter lets you call Start with the most control over what is passed into the call to start the process. Wenn nur ein Dateiname oder ein Dateiname und Argumente übergeben werden müssen, ist es nicht erforderlich, eine neue ProcessStartInfo Instanz zu erstellen, obwohl dies eine Option ist.If you need to pass only a file name or a file name and arguments, it is not necessary to create a new ProcessStartInfo instance, although that is an option. Die einzige Process.StartInfo Eigenschaft, die festgelegt werden muss, ist die- FileName Eigenschaft.The only Process.StartInfo property that must be set is the FileName property. Die- FileName Eigenschaft muss keine ausführbare Datei darstellen.The FileName property does not need to represent an executable file. Dabei kann es sich um einen beliebigen Dateityp handeln, für den die Erweiterung einer Anwendung zugeordnet wurde, die auf dem System installiert ist.It can be of any file type for which the extension has been associated with an application that is installed on the system. Die- FileName Eigenschaft kann z. b. die Erweiterung ". txt" aufweisen, wenn Sie Textdateien mit einem Editor (z. b. Notepad) verknüpft haben oder eine doc-Erweiterung haben, wenn Sie doc-Dateien mit einem Textverarbeitungs Tool verknüpft haben, z. b. Microsoft Word.For example, the FileName property can have a .txt extension if you have associated text files with an editor, such as Notepad, or it can have a .doc extension if you have associated .doc files with a word processing tool, such as Microsoft Word.

Sie können eine ClickOnce-Anwendung starten, indem Sie den Speicherort angeben (z. b. eine Webadresse), von dem Sie die Anwendung ursprünglich installiert haben.You can start a ClickOnce application by specifying the location (for example, a Web address) from which you originally installed the application. Starten Sie keine ClickOnce-Anwendung, indem Sie den installierten Speicherort auf der Festplatte angeben.Do not start a ClickOnce application by specifying its installed location on your hard drive.

Wenn die ProcessStartInfo.UserName - ProcessStartInfo.Password Eigenschaft und die-Eigenschaft der- StartInfo Instanz festgelegt werden, wird die nicht verwaltete- CreateProcessWithLogonW Funktion aufgerufen, die den Prozess in einem neuen Fenster startet, auch wenn der- ProcessStartInfo.CreateNoWindow Eigenschafts Wert true oder der- ProcessStartInfo.WindowStyle Eigenschafts ProcessWindowStyle.Hidden Wert ist.If the ProcessStartInfo.UserName and ProcessStartInfo.Password properties of the StartInfo instance are set, the unmanaged CreateProcessWithLogonW function is called, which starts the process in a new window even if the ProcessStartInfo.CreateNoWindow property value is true or the ProcessStartInfo.WindowStyle property value is ProcessWindowStyle.Hidden. Wenn die- ProcessStartInfo.Domain Eigenschaft ist null , ProcessStartInfo.UserName muss die-Eigenschaft im UPN-Format ( User @ DNS_domain_name) vorliegen.If the ProcessStartInfo.Domain property is null, the ProcessStartInfo.UserName property must be in UPN format, user@DNS_domain_name.

Im Gegensatz zu den anderen-über Ladungen ist die-Überladung, die Start keine Parameter hat, kein static Member.Unlike the other overloads, the overload of Start that has no parameters is not a static member. Verwenden Sie diese Überladung, wenn Sie bereits eine Process -Instanz erstellt und Startinformationen (einschließlich des Datei namens) angegeben haben und eine Prozess Ressource starten und der vorhandenen Instanz zuordnen möchten Process .Use that overload when you have already created a Process instance and specified start information (including the file name), and you want to start a process resource and associate it with the existing Process instance. Verwenden Sie eine der- static über Ladungen, wenn Sie eine neue-Komponente erstellen möchten, Process anstatt einen Prozess für eine vorhandene Komponente zu starten.Use one of the static overloads when you want to create a new Process component rather than start a process for an existing component. Diese Überladung und die-Überladung, die über keine Parameter verfügt, ermöglichen es Ihnen, die Startinformationen für die Prozess Ressource mithilfe einer- ProcessStartInfo Instanz anzugeben.Both this overload and the overload that has no parameters allow you to specify the start information for the process resource by using a ProcessStartInfo instance.

Wenn Sie über eine in Ihrem System deklarierte Pfad Variable mit Anführungszeichen verfügen, müssen Sie diesen Pfad vollständig qualifizieren, wenn Sie einen Prozess starten, der an diesem Speicherort gefunden wird.If you have a path variable declared in your system using quotes, you must fully qualify that path when starting any process found in that location. Andernfalls findet das System den Pfad nicht.Otherwise, the system will not find the path. Wenn z. b. c:\mypath nicht in Ihrem Pfad vorhanden ist und Sie ihn mit Anführungszeichen hinzufügen, path = %path%;"c:\mypath" müssen Sie einen beliebigen Prozess in vollständig qualifizieren, c:\mypath Wenn Sie ihn starten.For example, if c:\mypath is not in your path, and you add it using quotation marks: path = %path%;"c:\mypath", you must fully qualify any process in c:\mypath when starting it.

Hinweis

ASP.NET Webseiten-und Server Steuerelement Code werden im Kontext des ASP.NET-Workerprozesses auf dem Webserver ausgeführt.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. Wenn Sie die- Start Methode in einer ASP.NET-Webseite oder einem Server Steuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt.If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. Der Prozess startet nicht in demselben Kontext wie der Client Browser und hat keinen Zugriff auf den Benutzer Desktop.The process does not start in the same context as the client browser, and does not have access to the user desktop.

Wenn Sie verwenden, Start um einen Prozess zu starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren, dass Sie die Systemressourcen verlieren.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill.Close processes using CloseMainWindow or Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.You can check whether a process has already been closed by using its HasExited property.

Hier ist ein Hinweis zu Apartmentzustände in verwalteten Threads erforderlich.A note about apartment states in managed threads is necessary here. Wenn UseShellExecute true für den- startInfo Parameter ist, stellen Sie sicher, dass Sie ein Threading Modell für Ihre Anwendung festgelegt haben, indem Sie das-Attribut [STAThread] für die- main() Methode festlegen.When UseShellExecute is true on the startInfo parameter, make sure you have set a threading model on your application by setting the attribute [STAThread] on the main() method. Andernfalls kann sich ein verwalteter Thread in einem- unknown Zustand befinden oder in den-Zustand versetzt werden, der sich in einem MTA Konflikt mit befindet UseShellExecute true .Otherwise, a managed thread can be in an unknown state or put in the MTA state, the latter of which conflicts with UseShellExecute being true. Für einige Methoden ist es erforderlich, dass der Apartment Zustand nicht ist unknown .Some methods require that the apartment state not be unknown. Wenn der Zustand nicht explizit festgelegt ist und die Anwendung auf eine solche Methode stößt, wird standardmäßig festgelegt, MTA und sobald Sie festgelegt ist, kann der Apartment Zustand nicht geändert werden.If the state is not explicitly set, when the application encounters such a method, it defaults to MTA, and once set, the apartment state cannot be changed. Bewirkt jedoch, MTA dass eine Ausnahme ausgelöst wird, wenn die Betriebssystemshell den Thread verwaltet.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

Siehe auch

Gilt für:

Start(String, IEnumerable<String>)

Hiermit wird eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten gestartet.Starts a process resource by specifying the name of an application and a set of command line arguments.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::Collections::Generic::IEnumerable<System::String ^> ^ arguments);
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
static member Start : string * seq<string> -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As IEnumerable(Of String)) As Process

Parameter

fileName
String

Der Name eines Dokuments oder einer Anwendungsdatei, das bzw. die im Prozess ausgeführt werden soll.The name of a document or application file to run in the process.

arguments
IEnumerable<String>

Dies sind die Befehlszeilenargumente, die beim Starten des Prozesses übergeben werden sollen.The command-line arguments to pass when starting the process.

Gibt zurück

Process

Ein neuer Process, der der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wurde.A new Process that is associated with the process resource, or null if no process resource is started.

Hinweise

Jedes Argument wird bei Bedarf automatisch mit Escapezeichen versehen.Each argument will be escaped automatically if required.

Gilt für: