Teilen über


Process.Start Methode

Definition

Startet eine Prozessressource und ordnet sie einer Process-Komponente zu.

Ü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.

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.

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.

Start(String)

Startet eine Prozessressource, indem der Name eines Dokuments oder einer Anwendungsdatei angegeben wird, und ordnet die Ressource einer neuen Process-Komponente zu.

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.

Start()

Startet die von der StartInfo-Eigenschaft dieser Process-Komponente angegebene Prozessressource (oder verwendet sie erneut) und ordnet diese der Komponente zu.

Start(String, IEnumerable<String>)

Hiermit wird eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten gestartet.

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

Quelle:
Process.Unix.cs
Quelle:
Process.Unix.cs
Quelle:
Process.Unix.cs

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.

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.

arguments
String

Befehlszeilenargumente, die beim Starten des Prozesses übergeben werden sollen.

userName
String

Der beim Starten des Prozesses zu verwendende Benutzername.

password
SecureString

Eine SecureString, die das beim Starten des Prozesses zu verwendende Kennwort enthält.

domain
String

Die Domäne, die beim Starten des Prozesses verwendet werden soll.

Gibt zurück

Ein neuer Process, der der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wurde. 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. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true festgelegt ist. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.

Attribute

Ausnahmen

Es wurde kein Dateiname angegeben.

Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.

- oder -

Die in fileName angegebene Datei konnte nicht gefunden werden.

- oder -

Die Summe aus der Länge der Argumente und der Länge des vollständigen Pfads zur zugehörigen Datei überschreitet 2080. Die dieser Ausnahme zugeordnete Fehlermeldung kann eine der folgenden sein: "Der an einen Systemaufruf übergebene Datenbereich ist zu klein." oder "Zugriff wird verweigert".

Das Prozessobjekt wurde bereits verworfen.

Dieser Member, die unter Linux oder macOS nicht unterstützt wird (nur .NET Core).

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. Der neue Prozess führt dann die angegebene ausführbare Datei im Sicherheitskontext der angegebenen Anmeldeinformationen (Benutzer, Domäne und Kennwort) aus.

Wichtig

Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Hinweis

Wenn sich die ausführbare Datei auf einem Remotelaufwerk befindet, müssen Sie die Netzwerkfreigabe mithilfe eines URI (Uniform Resource Identifier, URI) und nicht mit einem Buchstaben des verknüpften Laufwerks identifizieren.

Hinweis

Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null zurückgegeben.

Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Process instance zu erstellen. Die Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen eines neuen Process instance, Festlegen der FileNameEigenschaften , Arguments, UserName, Passwordund Domain der StartInfo Eigenschaft und zum Aufrufen Start des Process instance.

Ebenso wie das Dialogfeld Ausführen einen ausführbaren Dateinamen mit oder ohne .exe-Erweiterung akzeptieren kann, ist die .exe-Erweiterung im fileName Parameter optional. Beispielsweise können Sie den fileName Parameter auf "Notepad.exe" oder "Editor" festlegen. Wenn der fileName Parameter eine ausführbare Datei darstellt, stellt der arguments Parameter möglicherweise eine Datei dar, auf die reagiert werden soll, z. B. die Textdatei in Notepad.exe myfile.txt.

Hinweis

Der Dateiname muss eine ausführbare Datei in den Überladungen darstellen, die Start Parameter , passwordund domain aufweisenuserName.

Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren den Verlust von Systemressourcen. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.

Gilt für:

Start(String, String, SecureString, String)

Quelle:
Process.Unix.cs
Quelle:
Process.Unix.cs
Quelle:
Process.Unix.cs

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.

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.

userName
String

Der beim Starten des Prozesses zu verwendende Benutzername.

password
SecureString

Eine SecureString, die das beim Starten des Prozesses zu verwendende Kennwort enthält.

domain
String

Die Domäne, die beim Starten des Prozesses verwendet werden soll.

Gibt zurück

Ein neuer Process, der der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wurde. 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. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true festgelegt ist. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.

Attribute

Ausnahmen

Es wurde kein Dateiname angegeben.

Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.

- oder -

Die in fileName angegebene Datei konnte nicht gefunden werden.

Das Prozessobjekt wurde bereits verworfen.

Dieser Member, die unter Linux oder macOS nicht unterstützt wird (nur .NET Core).

Beispiele

Das folgende Codebeispiel zeigt die Verwendung dieser Überladung zum Starten einer ausführbaren Datei und zeigt auch das Auslösen eines Win32Exception , wenn versucht wird, eine Anwendung zu starten, die einer nicht ausführenden Datei zugeordnet ist.

// 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. Der neue Prozess führt dann die angegebene ausführbare Datei im Sicherheitskontext der angegebenen Anmeldeinformationen (Benutzer, Domäne und Kennwort) aus.

Wichtig

Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Hinweis

Wenn sich die ausführbare Datei auf einem Remotelaufwerk befindet, müssen Sie die Netzwerkfreigabe mithilfe eines URI (Uniform Resource Identifier, URI) und nicht mit einem Buchstaben des verknüpften Laufwerks identifizieren.

Hinweis

Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null zurückgegeben.

Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Process instance zu erstellen. Die Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen eines neuen Process instance, Festlegen der FileNameEigenschaften , UserName, Passwordund Domain der StartInfo -Eigenschaft und zum Aufrufen Start des Process instance.

Ebenso wie das Dialogfeld Ausführen einen ausführbaren Dateinamen mit oder ohne .exe-Erweiterung akzeptieren kann, ist die .exe-Erweiterung im fileName Parameter optional. Beispielsweise können Sie den fileName Parameter auf "Notepad.exe" oder "Editor" festlegen. Wenn der fileName Parameter eine ausführbare Datei darstellt, stellt der arguments Parameter möglicherweise eine Datei dar, auf die reagiert werden soll, z. B. die Textdatei in Notepad.exe myfile.txt.

Hinweis

Der Dateiname muss eine ausführbare Datei in den Überladungen darstellen, die Start Parameter , passwordund domain aufweisenuserName.

Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren den Verlust von Systemressourcen. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.

Gilt für:

Start(String, String)

Quelle:
Process.cs
Quelle:
Process.cs
Quelle:
Process.cs

Startet eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten und ordnet die Ressource einer neuen Process-Komponente zu.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments);
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
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.

arguments
String

Befehlszeilenargumente, die beim Starten des Prozesses übergeben werden sollen.

Gibt zurück

Ein neuer Process, der der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wurde. 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. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true festgelegt ist. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.

Attribute

Ausnahmen

Der fileName-Parameter oder der arguments-Parameter ist null.

Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.

- oder -

Die in fileName angegebene Datei konnte nicht gefunden werden.

- oder -

Die Summe aus der Länge der Argumente und der Länge des vollständigen Pfads des Prozesses überschreitet 2080. Die dieser Ausnahme zugeordnete Fehlermeldung kann eine der folgenden sein: "Der an einen Systemaufruf übergebene Datenbereich ist zu klein." oder "Zugriff wird verweigert".

Das Prozessobjekt wurde bereits verworfen.

Die PATH-Umgebungsvariable weist eine Zeichenfolge mit Anführungszeichen auf.

Beispiele

Im folgenden Beispiel wird zunächst eine instance von Internet Explorer und der Inhalt des Ordners Favoriten im Browser angezeigt. Anschließend werden einige andere Instanzen von Internet-Explorer gestartet und einige bestimmte Seiten oder Websites angezeigt. Schließlich wird internet Explorer gestartet, wobei das Fenster beim Navigieren zu einer bestimmten Website minimiert wird.

#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 Prozessressource zu starten, indem Sie den Dateinamen und die Befehlszeilenargumente angeben. Die Überladung ordnet die Ressource einem neuen Process Objekt zu.

Wichtig

Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Hinweis

Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null zurückgegeben.

Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Process instance zu erstellen. Die Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen eines neuen Process instance, Festlegen der FileName Elemente und Arguments der StartInfo Eigenschaft und zum Aufrufen Start des Process instance.

Das Starten eines Prozesses durch Angabe des Dateinamens und der Argumente ähnelt der Eingabe des Dateinamens und der Run Befehlszeilenargumente im Dialogfeld des Windows-Menüs Start . Daher muss der Dateiname keine ausführbare Datei darstellen. Sie können einen beliebigen Dateityp werden für die die Erweiterung mit einer Anwendung, die auf dem System installierten zugeordnet wurde. Der Dateiname kann beispielsweise eine .txt-Erweiterung haben, wenn Sie Textdateien mit einem Editor wie Editor verknüpft haben, oder er kann eine .doc haben, wenn Sie .doc Dateien einem Textverarbeitungstool wie Microsoft Word zugeordnet haben. Auf ähnliche Weise, wie das Run Dialogfeld einen ausführbaren Dateinamen mit oder ohne .exe-Erweiterung akzeptieren kann, ist die .exe-Erweiterung im fileName Parameter optional. Beispielsweise können Sie den fileName Parameter auf "Notepad.exe" oder "Editor" festlegen. Wenn der fileName Parameter eine ausführbare Datei darstellt, stellt der arguments Parameter möglicherweise eine Datei dar, auf die reagiert werden soll, z. B. die Textdatei in Notepad.exe myfile.txt. Wenn der fileName Parameter eine Befehlsdatei (.cmd) darstellt, muss der arguments Parameter entweder ein "/c" oder "/k"-Argument enthalten, um anzugeben, ob das Befehlsfenster nach Abschluss beendet wird oder verbleibt.

Im Gegensatz zu den anderen Überladungen ist die Überladung von Start , die keine Parameter enthält, kein static Element. Verwenden Sie diese Überladung, wenn Sie bereits eine Process instance erstellt und Startinformationen (einschließlich des Dateinamens) angegeben haben und eine Prozessressource starten und sie dem vorhandenen Process instance zuordnen möchten. Verwenden Sie eine der static Überladungen, wenn Sie eine neue Process Komponente erstellen möchten, anstatt einen Prozess für eine vorhandene Komponente zu starten. Sowohl diese Überladung als auch die Überladung ohne Parameter ermöglichen es Ihnen, den Dateinamen der zu startenden Prozessressource und die zu übergebenden Befehlszeilenargumente anzugeben.

Wenn Sie eine Pfadvariable in Ihrem System mithilfe von Anführungszeichen deklariert haben, müssen Sie diesen Pfad beim Starten eines Prozesses, der an diesem Speicherort gefunden wurde, vollständig qualifizieren. Andernfalls findet das System den Pfad nicht. Wenn c:\mypath sie sich beispielsweise nicht in Ihrem Pfad befindet und Sie ihn mithilfe von Anführungszeichen hinzufügen: path = %path%;"c:\mypath", müssen Sie jeden Prozess vollständig c:\mypath qualifizieren, wenn Sie ihn starten.

Hinweis

ASP.NET Webseiten- und Serversteuerungscode wird im Kontext des ASP.NET-Workerprozesses auf dem Webserver ausgeführt. Wenn Sie die Start -Methode in einer ASP.NET Webseite oder einem Serversteuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt. Der Prozess beginnt nicht im selben Kontext wie der Clientbrowser und hat keinen Zugriff auf den Benutzerdesktop.

Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren den Verlust von Systemressourcen. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.

Hier ist ein Hinweis zu Apartmentzustände in verwalteten Threads erforderlich. Wenn UseShellExecute sich true die Eigenschaft der Prozesskomponente StartInfo befindet, stellen Sie sicher, dass Sie ein Threadingmodell für Ihre Anwendung festgelegt haben, indem Sie das -Attribut [STAThread] für die main() -Methode festlegen. Andernfalls kann sich ein verwalteter Thread in einem unknown Zustand befinden oder in den MTA Zustand versetzt werdentrue.UseShellExecute Einige Methoden erfordern, dass der Wohnungszustand nicht lautet unknown. Wenn der Zustand nicht explizit festgelegt ist, ist die Anwendung auf eine solche Methode standardmäßig MTAfestgelegt, und nach dem Festlegen kann der Apartmentzustand nicht mehr geändert werden. Bewirkt jedoch, dass eine Ausnahme ausgelöst wird, MTA wenn die Betriebssystemshell den Thread verwaltet.

Weitere Informationen

Gilt für:

Start(String)

Quelle:
Process.cs
Quelle:
Process.cs
Quelle:
Process.cs

Startet eine Prozessressource, indem der Name eines Dokuments oder einer Anwendungsdatei angegeben wird, und ordnet die Ressource einer neuen Process-Komponente zu.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName);
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName);
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
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.

Gibt zurück

Ein neuer Process, der der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wurde. 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. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true festgelegt ist. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.

Attribute

Ausnahmen

Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.

- oder -

Die in fileName angegebene Datei konnte nicht gefunden werden.

Das Prozessobjekt wurde bereits verworfen.

Die PATH-Umgebungsvariable weist eine Zeichenfolge mit Anführungszeichen auf.

Beispiele

Im folgenden Beispiel wird zunächst eine instance von Internet Explorer und der Inhalt des Ordners Favoriten im Browser angezeigt. Anschließend werden einige andere Instanzen von Internet-Explorer gestartet und einige bestimmte Seiten oder Websites angezeigt. Schließlich wird internet Explorer gestartet, wobei das Fenster beim Navigieren zu einer bestimmten Website minimiert wird.

#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 Prozessressource zu starten, indem Sie ihren Dateinamen angeben. Die Überladung ordnet die Ressource einem neuen Process Objekt zu.

Wichtig

Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Hinweis

Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null zurückgegeben.

Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Process instance zu erstellen. Die Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen eines neuen Process instance, Festlegen des FileName Elements der StartInfo -Eigenschaft und Aufrufen Start des 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. Starten Sie eine ClickOnce-Anwendung nicht, indem Sie ihren installierten Speicherort auf Ihrer Festplatte angeben.

Das Starten eines Prozesses durch Angabe des Dateinamens ähnelt der Eingabe der Informationen im Run Dialogfeld des Windows-Menüs Start . Daher muss der Dateiname keine ausführbare Datei darstellen. Sie können einen beliebigen Dateityp werden für die die Erweiterung mit einer Anwendung, die auf dem System installierten zugeordnet wurde. Der Dateiname kann beispielsweise eine .txt-Erweiterung haben, wenn Sie Textdateien mit einem Editor wie Editor verknüpft haben, oder er kann eine .doc haben, wenn Sie .doc Dateien einem Textverarbeitungstool wie Microsoft Word zugeordnet haben. Auf ähnliche Weise, wie das Run Dialogfeld einen ausführbaren Dateinamen mit oder ohne .exe-Erweiterung akzeptieren kann, ist die .exe-Erweiterung im fileName Parameter optional. Beispielsweise können Sie den fileName Parameter auf "Notepad.exe" oder "Editor" festlegen.

Diese Überladung lässt keine Befehlszeilenargumente für den Prozess zu. Wenn Sie ein oder mehrere Befehlszeilenargumente für den Prozess angeben müssen, verwenden Sie die Process.Start(ProcessStartInfo) - oder Process.Start(String, String) - Überladungen.

Im Gegensatz zu den anderen Überladungen ist die Überladung von Start , die keine Parameter enthält, kein static Element. Verwenden Sie diese Überladung, wenn Sie bereits eine Process instance erstellt und Startinformationen (einschließlich des Dateinamens) angegeben haben und eine Prozessressource starten und sie dem vorhandenen Process instance zuordnen möchten. Verwenden Sie eine der static Überladungen, wenn Sie eine neue Process Komponente erstellen möchten, anstatt einen Prozess für eine vorhandene Komponente zu starten. Sowohl diese Überladung als auch die Überladung ohne Parameter ermöglichen es Ihnen, den Dateinamen der zu startenden Prozessressource anzugeben.

Wenn Sie eine Pfadvariable in Ihrem System mithilfe von Anführungszeichen deklariert haben, müssen Sie diesen Pfad beim Starten eines Prozesses, der an diesem Speicherort gefunden wurde, vollständig qualifizieren. Andernfalls findet das System den Pfad nicht. Wenn c:\mypath sie sich beispielsweise nicht in Ihrem Pfad befindet und Sie ihn mithilfe von Anführungszeichen hinzufügen: path = %path%;"c:\mypath", müssen Sie jeden Prozess vollständig c:\mypath qualifizieren, wenn Sie ihn starten.

Hinweis

ASP.NET Webseiten- und Serversteuerungscode wird im Kontext des ASP.NET-Workerprozesses auf dem Webserver ausgeführt. Wenn Sie die Start -Methode in einer ASP.NET Webseite oder einem Serversteuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt. Der Prozess beginnt nicht im selben Kontext wie der Clientbrowser und hat keinen Zugriff auf den Benutzerdesktop.

Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren den Verlust von Systemressourcen. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.

Hier ist ein Hinweis zu Apartmentzustände in verwalteten Threads erforderlich. Wenn UseShellExecute sich true die Eigenschaft der Prozesskomponente StartInfo befindet, stellen Sie sicher, dass Sie ein Threadingmodell für Ihre Anwendung festgelegt haben, indem Sie das -Attribut [STAThread] für die main() -Methode festlegen. Andernfalls kann sich ein verwalteter Thread in einem unknown Zustand befinden oder in den MTA Zustand versetzt werden.UseShellExecutetrue Einige Methoden erfordern, dass der Wohnungszustand nicht lautet unknown. Wenn der Zustand nicht explizit festgelegt ist, wenn die Anwendung auf eine solche Methode trifft, wird standardmäßig festgelegt MTA, und nach dem Festlegen kann der Zustand der Wohnung nicht mehr geändert werden. Bewirkt jedoch, dass eine Ausnahme ausgelöst wird, MTA wenn die Betriebssystemshell den Thread verwaltet.

Weitere Informationen

Gilt für:

Start(ProcessStartInfo)

Quelle:
Process.cs
Quelle:
Process.cs
Quelle:
Process.cs

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.

public:
 static System::Diagnostics::Process ^ Start(System::Diagnostics::ProcessStartInfo ^ startInfo);
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
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
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
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.

Gibt zurück

Ein neuer Process, der der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wurde. 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. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true festgelegt ist. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.

Attribute

Ausnahmen

In der FileName-Eigenschaft des startInfo-Parameters wurde kein Dateiname angegeben.

- oder -

Die UseShellExecute-Eigenschaft des startInfo-Parameters ist true, und die RedirectStandardInput-, RedirectStandardOutput- oder RedirectStandardError-Eigenschaft ist ebenfalls true.

- oder -

Die UseShellExecute-Eigenschaft des startInfo-Parameters ist true, und die UserName-Eigenschaft ist nicht null oder leer, oder die Password-Eigenschaft ist nicht null.

Der startInfo-Parameter ist null.

Das Prozessobjekt wurde bereits verworfen.

Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.

- oder -

Die in der FileName-Eigenschaft des startInfo-Parameters angegebene Datei wurde nicht gefunden.

- oder -

Die Summe aus der Länge der Argumente und der Länge des vollständigen Pfads des Prozesses überschreitet 2080. Die dieser Ausnahme zugeordnete Fehlermeldung kann eine der folgenden sein: "Der an einen Systemaufruf übergebene Datenbereich ist zu klein." oder "Der Zugriff wird verweigert."

Methode, die von Betriebssystemen ohne Shellunterstützung wie z.B. Nano Server nicht unterstützt wird (nur .NET Core).

Beispiele

Im folgenden Beispiel wird zunächst eine instance der Internet-Explorer erstellt und der Inhalt des Ordners Favoriten im Browser angezeigt. Anschließend werden einige andere Instanzen von Internet Explorer gestartet und einige bestimmte Seiten oder Websites angezeigt. Schließlich wird internet Explorer gestartet, wobei das Fenster beim Navigieren zu einer bestimmten Website minimiert wird.

Weitere Beispiele für andere Verwendungen dieser Methode finden Sie in den einzelnen Eigenschaften der ProcessStartInfo -Klasse.

#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 Prozessressource zu starten, indem Sie eine ProcessStartInfo instance angeben. Die Überladung ordnet die Ressource einem neuen Process -Objekt zu.

Wichtig

Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Hinweis

Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null zurückgegeben.

Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Process instance zu erstellen. Die Verwendung dieser Überladung mit einem ProcessStartInfo Parameter ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process instance, zum Festlegen der StartInfo Eigenschaften und zum Aufrufen Start der Process instance.

Wenn Sie einen ProcessStartInfo instance als Parameter verwenden, können Sie mit der größten Kontrolle darüber aufrufenStart, was an den Aufruf übergeben wird, um den Prozess zu starten. Wenn Sie nur einen Dateinamen oder einen Dateinamen und Argumente übergeben müssen, ist es nicht erforderlich, eine neue ProcessStartInfo instance zu erstellen, obwohl dies eine Option ist. Die einzige Process.StartInfo Eigenschaft, die festgelegt werden muss, ist die FileName -Eigenschaft. Die FileName -Eigenschaft muss keine ausführbare Datei darstellen. Es kann sich um einen beliebigen Dateityp handeln, für den die Erweiterung einer Anwendung zugeordnet wurde, die auf dem System installiert ist. Die Eigenschaft kann beispielsweise eine .txt-Erweiterung aufweisen, FileName wenn Sie Textdateien mit einem Editor wie Editor verknüpft haben, oder eine .doc-Erweiterung, wenn Sie .doc Dateien einem Textverarbeitungstool zugeordnet haben, z. B. Microsoft Word.

Sie können eine ClickOnce-Anwendung starten, indem Sie den Speicherort (z. B. eine Webadresse) angeben, von dem aus Sie die Anwendung ursprünglich installiert haben. Starten Sie eine ClickOnce-Anwendung nicht, indem Sie den installierten Speicherort auf Ihrer Festplatte angeben.

Wenn die ProcessStartInfo.UserName Eigenschaften und ProcessStartInfo.Password der StartInfo instance festgelegt sind, wird die nicht verwaltete CreateProcessWithLogonW Funktion aufgerufen, die den Prozess in einem neuen Fenster startet, auch wenn der ProcessStartInfo.CreateNoWindow Eigenschaftswert true oder der ProcessStartInfo.WindowStyle Eigenschaftswert istProcessWindowStyle.Hidden. Wenn die ProcessStartInfo.Domain -Eigenschaft ist null, muss die ProcessStartInfo.UserName Eigenschaft im UPN-Format vorliegen, benutzerseitig@DNS_domain_name.

Im Gegensatz zu den anderen Überladungen ist die Überladung von Start , die keine Parameter enthält, kein static Member. Verwenden Sie diese Überladung, wenn Sie bereits eine Process instance erstellt und Startinformationen (einschließlich des Dateinamens) angegeben haben und eine Prozessressource starten und sie dem vorhandenen Process instance zuordnen möchten. Verwenden Sie eine der static Überladungen, wenn Sie eine neue Process Komponente erstellen möchten, anstatt einen Prozess für eine vorhandene Komponente zu starten. Sowohl diese Überladung als auch die Überladung ohne Parameter ermöglichen es Ihnen, die Startinformationen für die Prozessressource mithilfe eines ProcessStartInfo instance anzugeben.

Wenn Sie eine Pfadvariable in Ihrem System mithilfe von Anführungszeichen deklariert haben, müssen Sie diesen Pfad vollständig qualifizieren, wenn Sie einen Prozess starten, der an diesem Speicherort gefunden wurde. Andernfalls findet das System den Pfad nicht. Wenn c:\mypath sich z. B. nicht in Ihrem Pfad befindet und Sie ihn mithilfe von Anführungszeichen hinzufügen: path = %path%;"c:\mypath", müssen Sie alle Prozesse in c:\mypath vollständig qualifizieren, wenn Sie ihn starten.

Hinweis

ASP.NET Webseiten- und Serversteuerungscode wird im Kontext des ASP.NET-Arbeitsprozesses auf dem Webserver ausgeführt. Wenn Sie die Start -Methode in einem ASP.NET Webseite oder Serversteuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt. Der Prozess startet nicht im selben Kontext wie der Clientbrowser und hat keinen Zugriff auf den Benutzerdesktop.

Wenn Sie Start einen Prozess mit starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren den Verlust von Systemressourcen. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.

Hier ist ein Hinweis zu Apartmentzustände in verwalteten Threads erforderlich. true Wenn UseShellExecute sich für den startInfo -Parameter befindet, stellen Sie sicher, dass Sie ein Threadingmodell für Ihre Anwendung festgelegt haben, indem Sie das -Attribut [STAThread] für die main() -Methode festlegen. Andernfalls kann sich ein verwalteter Thread in einem unknown Zustand befinden oder in den MTA Zustand versetzt werden.UseShellExecutetrue Einige Methoden erfordern, dass der Wohnungszustand nicht lautet unknown. Wenn der Zustand nicht explizit festgelegt ist, wenn die Anwendung auf eine solche Methode trifft, wird standardmäßig festgelegt MTA, und nach dem Festlegen kann der Zustand der Wohnung nicht mehr geändert werden. Bewirkt jedoch, dass eine Ausnahme ausgelöst wird, MTA wenn die Betriebssystemshell den Thread verwaltet.

Weitere Informationen

Gilt für:

Start()

Quelle:
Process.cs
Quelle:
Process.cs
Quelle:
Process.cs

Startet die von der StartInfo-Eigenschaft dieser Process-Komponente angegebene Prozessressource (oder verwendet sie erneut) und ordnet diese der Komponente zu.

public:
 bool Start();
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public bool Start ();
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
member this.Start : unit -> bool
Public Function Start () As Boolean

Gibt zurück

true, wenn eine Prozessressource gestartet wird. false, wenn keine neue Prozessressource gestartet wird, sondern z. B. eine vorhandene Prozessressource wiederverwendet wird.

Attribute

Ausnahmen

In StartInfo der Komponente Process wurde kein Dateiname angegeben.

- oder -

Das UseShellExecute -Member der StartInfo -Eigenschaft ist true , während RedirectStandardInput, RedirectStandardOutputoder RedirectStandardErrortrueist.

Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.

Das Prozessobjekt wurde bereits verworfen.

Methode, die von Betriebssystemen ohne Shellunterstützung wie z.B. Nano Server nicht unterstützt wird (nur .NET Core).

Beispiele

Im folgenden Beispiel wird ein instance der Process -Klasse verwendet, um einen Prozess zu starten.

#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 it 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 it 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 it 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 Prozessressource zu starten und sie der aktuellen Process Komponente zuzuordnen. Der Rückgabewert true gibt an, dass eine neue Prozessressource gestartet wurde. Wenn die vom Member der FileNameStartInfo -Eigenschaft angegebene Prozessressource bereits auf dem Computer ausgeführt wird, wird keine zusätzliche Prozessressource gestartet. Stattdessen wird die ausgeführte Prozessressource wiederverwendet und false zurückgegeben.

Sie können eine ClickOnce-Anwendung starten, indem Sie den Speicherort (z. B. eine Webadresse) angeben, von dem aus Sie die Anwendung ursprünglich installiert haben. Starten Sie eine ClickOnce-Anwendung nicht, indem Sie den installierten Speicherort auf Ihrer Festplatte angeben.

Wichtig

Das Verwenden einer Instanz dieses Objekts mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Verwenden Sie dieses Objekt nur mit vertrauenswürdigen Daten. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Hinweis

Wenn Sie Visual Studio verwenden, ist diese Überladung der Start -Methode die, die Sie in Ihren Code einfügen, nachdem Sie eine Process Komponente in den Designer gezogen haben. Verwenden Sie das Properties Fenster, um die StartInfo Kategorie zu erweitern und den entsprechenden Wert in die FileName -Eigenschaft zu schreiben. Ihre Änderungen werden in der Prozedur des Formulars InitializeComponent angezeigt.

Diese Überladung von Start ist keine static Methode. Sie müssen sie aus einer instance der Process -Klasse aufrufen. Vor dem Aufrufen Startvon müssen Sie zunächst Eigenschafteninformationen für diese Process instance angebenStartInfo, da diese Informationen verwendet werden, um die zu startende Prozessressource zu bestimmen.

Die anderen Überladungen der Start -Methode sind static Member. Sie müssen keine instance der Process Komponente erstellen, bevor Sie diese Überladungen der -Methode aufrufen. Stattdessen können Sie für die Process Klasse selbst aufrufenStart, und eine neue Process Komponente wird erstellt, wenn der Prozess gestartet wurde. Oder wird zurückgegeben, null wenn ein Prozess wiederverwendet wurde. Die Prozessressource wird automatisch der neuen Process Komponente zugeordnet, die von der Start -Methode zurückgegeben wird.

Die StartInfo Elemente können verwendet werden, um die Funktionalität des Run Dialogfelds des Windows-Menüs Start zu duplizieren. Alles, was in eine Befehlszeile eingegeben werden kann, kann gestartet werden, indem die entsprechenden Werte in der StartInfo -Eigenschaft festgelegt werden. Die einzige StartInfo Eigenschaft, die festgelegt werden muss, ist die FileName -Eigenschaft. Die FileName Eigenschaft muss keine ausführbare Datei sein. Es kann sich um einen beliebigen Dateityp handeln, für den die Erweiterung einer Anwendung zugeordnet wurde, die auf dem System installiert ist. Beispielsweise kann die FileName -Eigenschaft eine .txt-Erweiterung aufweisen, wenn Sie Textdateien mit einem Editor wie Editor verknüpft haben, oder sie kann eine .doc-Erweiterung aufweisen, wenn Sie .doc Dateien einem Textverarbeitungstool wie Microsoft Word zugeordnet haben.

In der Befehlszeile können Sie Aktionen angeben, die für bestimmte Dateitypen ausgeführt werden sollen. Beispielsweise können Sie Dokumente drucken oder Textdateien bearbeiten. Geben Sie diese Aktionen mithilfe des Verb Members der StartInfo -Eigenschaft an. Für andere Dateitypen können Sie Befehlszeilenargumente angeben, wenn Sie die Datei über das Run Dialogfeld starten. Sie können beispielsweise eine URL als Argument übergeben, wenn Sie Ihren Browser als FileNameangeben. Diese Argumente können im Element der StartInfo Eigenschaft Arguments angegeben werden.

Wenn Sie eine Pfadvariable in Ihrem System mithilfe von Anführungszeichen deklariert haben, müssen Sie diesen Pfad beim Starten eines Prozesses, der an diesem Speicherort gefunden wurde, vollständig qualifizieren. Andernfalls findet das System den Pfad nicht. Wenn c:\mypath sie sich beispielsweise nicht in Ihrem Pfad befindet und Sie ihn mithilfe von Anführungszeichen hinzufügen: path = %path%;"c:\mypath", müssen Sie jeden Prozess vollständig c:\mypath qualifizieren, wenn Sie ihn starten.

Hinweis

ASP.NET Webseiten- und Serversteuerungscode wird im Kontext des ASP.NET-Workerprozesses auf dem Webserver ausgeführt. Wenn Sie die Start -Methode in einer ASP.NET Webseite oder einem Serversteuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt. Der Prozess beginnt nicht im selben Kontext wie der Clientbrowser und hat keinen Zugriff auf den Benutzerdesktop.

Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren den Verlust von Systemressourcen. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.

Hier ist ein Hinweis zu Apartmentzustände in verwalteten Threads erforderlich. Wenn UseShellExecute sich true die Eigenschaft der Prozesskomponente StartInfo befindet, stellen Sie sicher, dass Sie ein Threadingmodell für Ihre Anwendung festgelegt haben, indem Sie das -Attribut [STAThread] für die main() -Methode festlegen. Andernfalls kann sich ein verwalteter Thread in einem unknown Zustand befinden oder in den MTA Zustand versetzt werdentrue.UseShellExecute Einige Methoden erfordern, dass der Wohnungszustand nicht lautet unknown. Wenn der Zustand nicht explizit festgelegt ist, ist die Anwendung auf eine solche Methode standardmäßig MTAfestgelegt, und nach dem Festlegen kann der Apartmentzustand nicht mehr geändert werden. Bewirkt jedoch, dass eine Ausnahme ausgelöst wird, MTA wenn die Betriebssystemshell den Thread verwaltet.

Weitere Informationen

Gilt für:

Start(String, IEnumerable<String>)

Quelle:
Process.cs
Quelle:
Process.cs
Quelle:
Process.cs

Hiermit wird eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten gestartet.

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);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
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.

arguments
IEnumerable<String>

Dies sind die Befehlszeilenargumente, die beim Starten des Prozesses übergeben werden sollen.

Gibt zurück

Ein neuer Process, der der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wurde.

Attribute

Hinweise

Jedes Argument wird bei Bedarf automatisch mit Escapezeichen versehen.

Wichtig

Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Gilt für: