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()

Startet die von der StartInfo-Eigenschaft dieser Process-Komponente angegebene Prozessressource (oder verwendet sie erneut) und ordnet diese der 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(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)

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

Process

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 wie folgt lauten: "Der an einen Systemaufruf weitergegebene Datenbereich ist zu klein." oder "Zugriff 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 den 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.

Hinweis

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

Hinweis

Wenn die Adresse der zu startden 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 Instanz zu Process erstellen. Die -Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Instanz, zum Festlegen der Eigenschaften , , , und der -Eigenschaft und zum Aufrufen der Process FileName Arguments UserName Password Domain StartInfo Start Process -Instanz.

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

Hinweis

Der Dateiname muss eine ausführbare Datei in den Überladungen mit den Start userName password Parametern , und domain darstellen.

Wenn Sie verwenden, um einen Prozess zu starten, müssen Sie ihn möglicherweise schließen, oder Start Sie riskieren, Systemressourcen zu verlieren. 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)

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

Process

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 sowie das Auslösen von , wenn versucht wird, eine Anwendung zu starten, die einer nicht ausführbaren Datei zugeordnet Win32Exception 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 den primären Thread zu erstellen, indem Sie den Dateinamen, 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.

Hinweis

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

Hinweis

Wenn die Adresse der zu startden 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 Instanz zu Process erstellen. Die -Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen -Instanz, zum Festlegen der Eigenschaften , , und der -Eigenschaft und zum Aufrufen Process FileName der UserName Password Domain StartInfo Start Process -Instanz.

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

Hinweis

Der Dateiname muss eine ausführbare Datei in den Überladungen mit den Start userName password Parametern , und domain darstellen.

Wenn Sie verwenden, um einen Prozess zu starten, müssen Sie ihn möglicherweise schließen, oder Start Sie riskieren, Systemressourcen zu verlieren. 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)

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);
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
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

Process

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 wie folgt lauten: "Der an einen Systemaufruf weitergegebene Datenbereich ist zu klein." oder "Zugriff verweigert".

Das Prozessobjekt wurde bereits verworfen.

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

Beispiele

Im folgenden Beispiel wird zuerst eine Instanz von Internet Explorer und der Inhalt des Ordners Favoriten im Browser angezeigt. Anschließend werden einige andere Instanzen von Internet Explorer und einige bestimmte Seiten oder Websites angezeigt. Schließlich wird Internet Explorer, während 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 durch Angabe des Dateinamens und der Befehlszeilenargumente zu starten. Die -Überladung ordnet die Ressource einem neuen Process -Objekt zu.

Hinweis

Wenn die Adresse der ausführbaren Datei, die gestartet werden soll, 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 Instanz zu Process erstellen. Die -Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process -Instanz, zum Festlegen FileName der - und Arguments -Member der StartInfo -Eigenschaft und zum Aufrufen der Start Process -Instanz.

Das Starten eines Prozesses durch Angabe des Dateinamens und der Argumente ähnelt der Eingabe des Dateinamens und der Befehlszeilenargumente im Run Dialogfeld des menüs Start Windows. 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. Beispielsweise kann der Dateiname eine .txt-Erweiterung haben, wenn Sie Textdateien einem Editor wie Editor zugeordnet haben, oder einen .doc, wenn Sie .doc-Dateien einem Textverarbeitungstool wie Microsoft Word zugeordnet haben. Ebenso wie das Dialogfeld einen ausführbaren Dateinamen mit oder ohne die .exe-Erweiterung akzeptieren kann, ist die .exe-Erweiterung im -Parameter Run fileName optional. Beispielsweise können Sie den Parameter auf fileName "Notepad.exe" oder "Editor" festlegen. Wenn der fileName -Parameter eine ausführbare Datei darstellt, stellt der -Parameter möglicherweise eine Datei dar, auf die sie zu handeln hat, z. arguments B. die Textdatei in Notepad.exe myfile.txt . Wenn der fileName Parameter eine Befehlsdatei (.cmd) darstellt, muss der Parameter entweder ein Argument vom Typ " " oder "" enthalten, um anzugeben, ob das arguments /c Befehlsfenster nach abschluss beendet oder /k erhalten bleibt.

Im Gegensatz zu den anderen Überladungen ist die Überladung von Start ohne Parameter kein static Member. Verwenden Sie diese Überladung, wenn Sie bereits eine Instanz erstellt und Startinformationen (einschließlich des Dateinamens) angegeben haben und sie eine Prozessressource starten und der vorhandenen Process Instanz zuordnen Process möchten. Verwenden Sie eine der Überladungen, wenn Sie eine neue Komponente erstellen möchten, anstatt static einen Prozess für eine vorhandene Komponente zu Process 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 mit Anführungszeichen deklariert haben, müssen Sie diesen Pfad vollständig qualifizieren, wenn Sie einen Prozess an diesem Speicherort starten. Andernfalls findet das System den Pfad nicht. Wenn sich beispielsweise nicht in Ihrem Pfad befindet und Sie ihn mit Anführungszeichen hinzufügen: , müssen Sie jeden Prozess in vollständig qualifizieren, wenn Sie c:\mypath path = %path%;"c:\mypath" ihn c:\mypath starten.

Hinweis

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

Wenn Sie verwenden, um einen Prozess zu starten, müssen Sie ihn möglicherweise schließen, oder Start Sie riskieren, Systemressourcen zu verlieren. 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 sich in der -Eigenschaft der Prozesskomponente befindet, stellen Sie sicher, dass Sie ein Threadingmodell für Ihre Anwendung festgelegt haben, indem Sie das UseShellExecute true StartInfo -Attribut [STAThread] für die -Methode main() festlegen. Andernfalls kann sich ein verwalteter Thread in einem Zustand oder in den Zustand setzen, dessen Letzterer mit dem Zustand in unknown MTA Konflikt UseShellExecute true steht. Einige Methoden erfordern, dass der Apartmentzustand nicht unknown ist. Wenn der Zustand nicht explizit festgelegt ist und die Anwendung auf eine solche Methode trifft, wird standardmäßig verwendet, und sobald er festgelegt ist, kann der MTA Apartmentzustand nicht mehr geändert werden. Bewirkt jedoch, MTA dass eine Ausnahme ausgelöst wird, wenn die Betriebssystemshell den Thread verwalten soll.

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.

public:
 bool Start();
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public bool Start ();
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
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.

Attribute

Ausnahmen

In StartInfo der Komponente Process wurde kein Dateiname angegeben.

- oder -

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

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 eine Instanz 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 Mitglied der -Eigenschaft angegebene Prozessressource FileName bereits auf dem Computer ausgeführt StartInfo 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 keine ClickOnce Anwendung, indem Sie ihren installierten Speicherort auf Ihrer Festplatte angeben.

Hinweis

Wenn Sie Visual Studio verwenden, wird diese Überladung der Start -Methode in den Code eingefügt, nachdem Sie eine Komponente auf den Designer gezogen Process haben. Verwenden Sie das Properties Fenster, um die Kategorie zu erweitern StartInfo und den entsprechenden Wert in die -Eigenschaft zu FileName 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 Instanz der Process -Klasse aufrufen. Vor dem Aufrufen von Start müssen Sie zunächst StartInfo Eigenschafteninformationen für diese Instanz Process angeben, 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 Instanz der -Komponente erstellen, Process bevor Sie diese Überladungen der -Methode aufrufen. Stattdessen können Sie Start für die Process -Klasse selbst aufrufen, und eine neue Process Komponente wird erstellt, wenn der Prozess gestartet wurde. Oder, null wird zurückgegeben, wenn ein Prozess wiederverwendet wurde. Die Prozessressource wird automatisch der neuen Process Komponente zugeordnet, die von der -Methode zurückgegeben Start wird.

Die StartInfo Member können verwendet werden, um die Funktionalität des Dialogfelds des Windows Menüs zu duplizieren. Run Start Alles, was in eine Befehlszeile eingegeben werden kann, kann gestartet werden, indem die entsprechenden Werte in der -Eigenschaft festgelegt StartInfo werden. Die einzige StartInfo Eigenschaft, die festgelegt werden muss, ist die FileName -Eigenschaft. Die FileName -Eigenschaft muss keine ausführbare Datei sein. Sie kann einen beliebigen Dateityp aufweisen, 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 einem Editor zugeordnet haben, z. B. Editor, oder sie kann eine .doc Erweiterung aufweisen, wenn Sie .doc Dateien einem Textverarbeitungstool zugeordnet haben, z. B. Microsoft Word.

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

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

Hinweis

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

Wenn Sie Start zum Starten eines Prozesses verwenden, 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 in der true -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 Zustand versetzt MTA werden, wobei letzteres einen Konflikt mit UseShellExecute true darstellt. Einige Methoden erfordern, dass der Apartmentzustand nicht unknown ist. Wenn der Zustand nicht explizit festgelegt ist und die Anwendung auf eine solche Methode trifft, wird standardmäßig MTA auf festgelegt, und nach dem Festlegen kann der Apartmentzustand nicht mehr geändert werden. Bewirkt jedoch, MTA dass eine Ausnahme ausgelöst wird, wenn die Betriebssystemshell den Thread verwaltet.

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.

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

Process

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 zuerst eine Instanz von 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.

#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 durch Angabe des Dateinamens zu starten. Die -Überladung ordnet die Ressource einem neuen Process -Objekt zu.

Hinweis

Wenn die Adresse der ausführbaren Datei, die gestartet werden soll, 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 Instanz zu Process erstellen. Die -Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process -Instanz, zum Festlegen FileName des Members der StartInfo -Eigenschaft und zum Aufrufen der Start Process -Instanz.

Sie können eine ClickOnce Anwendung starten, indem Sie den fileName Parameter auf den Speicherort (z. B. eine Webadresse) festlegen, an dem Sie die Anwendung ursprünglich installiert haben. Starten Sie keine ClickOnce Anwendung, 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 Start menüs Windows. 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 z. B. eine .txt Erweiterung aufweisen, wenn Sie Textdateien einem Editor zugeordnet haben, z. B. Editor, oder er kann eine .doc aufweisen, wenn Sie .doc Dateien einem Textverarbeitungstool zugeordnet haben, z. B. Microsoft Word. Ebenso wie das Run Dialogfeld einen ausführbaren Dateinamen mit oder ohne die erweiterung .exe akzeptieren kann, ist die erweiterung .exe 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) Process.Start(String, String) -Überladung oder die -Überladung.

Im Gegensatz zu den anderen Überladungen ist die Überladung von , die über keine Parameter verfügt, Start kein static Member. Verwenden Sie diese Überladung, wenn Sie bereits eine Process -Instanz und angegebene Startinformationen (einschließlich des Dateinamens) erstellt haben und eine Prozessressource starten und der vorhandenen Instanz zuordnen Process möchten. Verwenden Sie eine der static -Überladungen, wenn Sie eine neue Komponente erstellen möchten, anstatt einen Prozess für eine vorhandene Komponente zu Process starten. Sowohl diese Überladung als auch die Überladung ohne Parameter ermöglichen es Ihnen, den Dateinamen der zu startende Prozessressource anzugeben.

Wenn Sie eine Pfadvariable in Ihrem System mit Anführungszeichen deklariert haben, müssen Sie diesen Pfad vollständig qualifizieren, wenn Sie einen prozess gefundenen Prozess an diesem Speicherort starten. Andernfalls findet das System den Pfad nicht. Wenn sich beispielsweise nicht in Ihrem Pfad befindet c:\mypath und Sie ihn mit Anführungszeichen hinzufügen: , müssen Sie jeden Prozess in vollständig path = %path%;"c:\mypath" c:\mypath qualifizieren, wenn Sie ihn starten.

Hinweis

ASP.NET Der Code des Webseiten- und Serversteuerelements 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 wird nicht im gleichen Kontext wie der Clientbrowser gestartet und hat keinen Zugriff auf den Benutzerdesktop.

Wenn Sie Start zum Starten eines Prozesses verwenden, 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 in der true -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 Zustand versetzt MTA werden, wobei letzteres einen Konflikt mit UseShellExecute true darstellt. Einige Methoden erfordern, dass der Apartmentzustand nicht unknown ist. Wenn der Zustand nicht explizit festgelegt ist und die Anwendung auf eine solche Methode trifft, wird standardmäßig MTA auf festgelegt, und nach dem Festlegen kann der Apartmentzustand nicht mehr geändert werden. Bewirkt jedoch, MTA dass eine Ausnahme ausgelöst wird, wenn die Betriebssystemshell den Thread verwaltet.

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.

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);
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
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

Process

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 wie folgt lauten: "Der an einen Systemaufruf weitergegebene Datenbereich ist zu klein." oder "Zugriff 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 zuerst eine Instanz von 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 Verwendungsmöglichkeiten 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 durch Angeben einer -Instanz zu ProcessStartInfo starten. Die -Überladung ordnet die Ressource einem neuen Process -Objekt zu.

Hinweis

Wenn die Adresse der ausführbaren Datei, die gestartet werden soll, 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 Instanz zu Process erstellen. Die Verwendung dieser Überladung mit einem ProcessStartInfo Parameter ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process Instanz, zum Festlegen ihrer Eigenschaften und StartInfo zum Aufrufen der Start Process Instanz.

Wenn Sie eine ProcessStartInfo -Instanz als Parameter verwenden, können Sie Start mit der größten Kontrolle darüber aufrufen, 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 Instanz zu ProcessStartInfo 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. Sie kann einen beliebigen Dateityp aufweisen, 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 einem Editor zugeordnet haben, z. B. Editor, oder sie kann eine .doc Erweiterung aufweisen, 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 keine ClickOnce Anwendung, indem Sie ihren installierten Speicherort auf Ihrer Festplatte angeben.

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

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

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

Hinweis

ASP.NET Der Code des Webseiten- und Serversteuerelements 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 wird nicht im gleichen Kontext wie der Clientbrowser gestartet und hat keinen Zugriff auf den Benutzerdesktop.

Wenn Sie Start zum Starten eines Prozesses verwenden, 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 für den -Parameter festgelegt true startInfo ist, 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 Zustand versetzt MTA werden, wobei letzteres einen Konflikt mit UseShellExecute true darstellt. Einige Methoden erfordern, dass der Apartmentzustand nicht unknown ist. Wenn der Zustand nicht explizit festgelegt ist und die Anwendung auf eine solche Methode trifft, wird standardmäßig MTA auf festgelegt, und nach dem Festlegen kann der Apartmentzustand nicht mehr geändert werden. Bewirkt jedoch, MTA dass eine Ausnahme ausgelöst wird, wenn die Betriebssystemshell den Thread verwaltet.

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.

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);
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
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

Process

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

Attribute

Hinweise

Jedes Argument wird bei Bedarf automatisch mit Escapen getrennt.

Gilt für