Process.Start Process.Start Process.Start Process.Start Method

Definition

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

Überlädt

Start() Start() Start() Start()

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

Start(ProcessStartInfo) Start(ProcessStartInfo) Start(ProcessStartInfo) Start(ProcessStartInfo)

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

Start(String) Start(String) Start(String) Start(String)

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

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

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

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

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

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

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

Start() Start() Start() Start()

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

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

Gibt zurück

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

Ausnahmen

In StartInfo der Komponente Process wurde kein Dateiname angegeben.No file name was specified in the Process component's StartInfo. Oder das UseShellExecute-Member der StartInfo-Eigenschaft ist true, während RedirectStandardInput, RedirectStandardOutput oder RedirectStandardError true ist.-or- The UseShellExecute member of the StartInfo property is true while RedirectStandardInput, RedirectStandardOutput, or RedirectStandardError is true.

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

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

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

Beispiele

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

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

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

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

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

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

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

Hinweise

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

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

Hinweis

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

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

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

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

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

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

Hinweis

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

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

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

Sicherheit

LinkDemand
für volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer.for full trust for the immediate caller. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden.This member cannot be used by partially trusted code.

Siehe auch

Start(ProcessStartInfo) Start(ProcessStartInfo) Start(ProcessStartInfo) Start(ProcessStartInfo)

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

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

Parameter

startInfo
ProcessStartInfo ProcessStartInfo ProcessStartInfo ProcessStartInfo

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

Gibt zurück

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

Ausnahmen

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

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

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

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

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

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

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

- oder --or-

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

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

Beispiele

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

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

#using <System.dll>

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

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

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

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

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

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

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

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

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

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

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

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

            Process.Start(startInfo);

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

            Process.Start(startInfo);
        }

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

            MyProcess myProcess = new MyProcess();

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

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

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

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

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

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

Hinweise

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

Hinweis

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

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

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

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

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

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

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

Hinweis

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

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

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

Sicherheit

LinkDemand
für volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer.for full trust for the immediate caller. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden.This member cannot be used by partially trusted code.

Siehe auch

Start(String) Start(String) Start(String) Start(String)

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

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

Parameter

fileName
String String String String

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

Gibt zurück

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

Ausnahmen

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

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

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

Beispiele

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

#using <System.dll>

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

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

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

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

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

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

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

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

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

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

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

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

            Process.Start(startInfo);

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

            Process.Start(startInfo);
        }

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

            MyProcess myProcess = new MyProcess();

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

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

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

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

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

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

Hinweise

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

Hinweis

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

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

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

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

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

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

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

Hinweis

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

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

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

Sicherheit

LinkDemand
für volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer.for full trust for the immediate caller. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden.This member cannot be used by partially trusted code.

Siehe auch

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

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

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

Parameter

fileName
String String String String

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

arguments
String String String String

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

Gibt zurück

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

Ausnahmen

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

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

- oder --or-

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

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

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

Beispiele

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

#using <System.dll>

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

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

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

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

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

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

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

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

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

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

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

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

            Process.Start(startInfo);

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

            Process.Start(startInfo);
        }

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

            MyProcess myProcess = new MyProcess();

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

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

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

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

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

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

Hinweise

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

Hinweis

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

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

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

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

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

Hinweis

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

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

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

Sicherheit

LinkDemand
für volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer.for full trust for the immediate caller. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden.This member cannot be used by partially trusted code.

Siehe auch

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

Wichtig

Diese API ist nicht CLS-kompatibel.

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

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
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 String String String

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

userName
String String String String

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

password
SecureString SecureString SecureString SecureString

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

domain
String String String String

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

Gibt zurück

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

Ausnahmen

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

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

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

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

Beispiele

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Hinweise

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

Hinweis

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

Hinweis

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

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

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

Hinweis

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

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

Sicherheit

LinkDemand
für volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer.for full trust for the immediate caller. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden.This member cannot be used by partially trusted code.

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

Wichtig

Diese API ist nicht CLS-kompatibel.

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

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
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 String String String

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

arguments
String String String String

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

userName
String String String String

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

password
SecureString SecureString SecureString SecureString

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

domain
String String String String

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

Gibt zurück

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

Ausnahmen

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

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

- oder --or-

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

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

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

Hinweise

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

Hinweis

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

Hinweis

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

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

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

Hinweis

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

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

Sicherheit

LinkDemand
für volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer.for full trust for the immediate caller. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden.This member cannot be used by partially trusted code.

Gilt für: