(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original

Process.Start-Methode (String)

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

Namespace:  System.Diagnostics
Assembly:  System (in System.dll)

public static Process Start(
	string fileName
)

Parameter

fileName
Typ: System.String
Der Name eines Dokuments oder einer Anwendungsdatei, das bzw. die im Prozess ausgeführt werden soll.

Rückgabewert

Typ: System.Diagnostics.Process
Eine neue Process-Komponente, die der Prozessressource zugeordnet ist, oder null, wenn keine Prozessressource gestartet wird (z. B., wenn ein vorhandener Prozess wiederverwendet wird).

AusnahmeBedingung
Win32Exception

Fehler beim Öffnen der zugeordneten Datei.

ObjectDisposedException

Das Prozessobjekt wurde bereits verworfen.

FileNotFoundException

Die PATH-Umgebungsvariable verfügt über eine Zeichenfolge, die Anführungszeichen enthält.

Verwenden Sie diese Überladung zum Starten einer Prozessressource durch Angeben ihres Dateinamens. Die Überladung ordnet die Ressource einer neuen Process-Komponente zu. Wenn der Prozess bereits ausgeführt wird, wird keine zusätzliche Prozessressource gestartet. Stattdessen wird die vorhandene Prozessressource wiederverwendet, und es wird keine neue Process-Komponente erstellt. In diesem Fall gibt Start für die aufrufende Prozedur keine neue Process-Komponente, sondern null zurück.

HinweisHinweis

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

Mit dieser Überladung können Sie einen Prozess starten, ohne zuvor eine neue Process-Instanz erstellt zu haben. Die Überladung ist eine Alternative zur Ausführung der einzelnen Schritte zum Erstellen einer neuen Process-Instanz, Festlegen des FileName-Members der StartInfo-Eigenschaft und Aufrufen von Start für die Process-Instanz.

Eine ClickOnce-Anwendung können Sie starten, indem Sie den fileName-Parameter auf den Ort (z. B. eine Webadresse) festgelegen, von dem Sie die Anwendung ursprünglich installiert haben. Starten Sie keine ClickOnce-Anwendung, indem Sie deren Installationspfad auf der Festplatte angeben.

Das Starten eines Prozesses durch Angabe seines Dateinamens ähnelt dem Eingeben der Informationen im Dialogfeld Run des Startmenüs von Windows. Daher muss der Dateiname keine ausführbare Datei darstellen. Es kann sich um eine Datei beliebigen Typs handeln, deren Erweiterung einer auf dem System installierten Anwendung zugeordnet ist. So kann der Dateiname z. B. die Erweiterung .txt aufweisen, wenn Sie Textdateien einem Editor wie dem Windows-Editor zugeordnet haben, oder die Erweiterung .doc, wenn Sie DOC-Dateien einem Textverarbeitungsprogramm wie Microsoft Word zugeordnet haben. Ebenso wie das Dialogfeld Run den Namen einer ausführbaren Datei mit und ohne die Erweiterung .exe akzeptiert, ist die Erweiterung .exe im fileName-Parameter optional. So können Sie z. B. den fileName-Parameter auf "Notepad.exe" oder "Notepad" festlegen.

Bei dieser Überladung sind keine Befehlszeilenargumente für den Prozess zulässig. Wenn Sie Befehlszeilenargumente für den Prozess angeben müssen, verwenden Sie die Process.Start(ProcessStartInfo)-Überladung oder die Process.Start(String, String)-Überladung.

Im Gegensatz zu den anderen Überladungen ist die Überladung von Start, die über keine Parameter verfügt, kein static-Member. Verwenden Sie diese Überladung, wenn Sie bereits eine Process-Instanz erstellt und Startinformationen (einschließlich Dateiname) angegeben haben und eine Prozessressource starten möchten, die der vorhandenen Process-Instanz zugeordnet werden soll. Verwenden Sie eine der static-Überladungen, wenn Sie eine neue Process-Komponente erstellen und keinen Prozess für eine vorhandene Komponente starten möchten. Sowohl diese Überladung als auch die parameterlose Überladung ermöglichen die Angabe des Dateinamens für die zu startende Prozessressource.

Wenn Sie im System eine Pfadvariable mit Anführungszeichen deklariert haben, müssen Sie diesen Pfad voll qualifizieren, um einen an dieser Position gefundenen Prozess zu starten. Andernfalls findet das System den Pfad nicht. Wenn z. B. c:\mypath nicht im Pfad enthalten ist und von Ihnen unter Verwendung von Anführungszeichen hinzugefügt wird, wie in path = %path%;"c:\mypath", müssen Sie jeden Prozess in c:\mypath beim Starten voll qualifizieren.

HinweisHinweis

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

Wenn Sie einen Prozess mit Start starten, müssen Sie ihn möglicherweise schließen, damit keine Systemressourcen verloren gehen. Prozesse können Sie über CloseMainWindow oder Kill schließen.

An dieser Stelle ist ein Hinweis auf Apartmentzustände in verwalteten Threads erforderlich. Wenn UseShellExecute für die StartInfo-Eigenschaft der Prozesskomponente true ist, muss in der Anwendung über Festlegen des Attributs [STAThread] für die main()-Methode ein Threadmodell festgelegt sein. Andernfalls kann sich ein verwalteter Thread in einem Zustand befinden, der unknown ist, oder in den MTA-Zustand wechseln. Letzteres führt zu einem Konflikt, wenn UseShellExecute den Wert true hat. Für einige Methoden darf der Apartmentzustand nicht unknown sein. Wenn der Zustand nicht ausdrücklich festgelegt wird, nimmt die Anwendung im Falle einer derartigen Methode den Standardwert MTA an. Nach dieser Festlegung kann der Apartmentzustand nicht mehr geändert werden. Allerdings löst MTA eine Ausnahme aus, wenn die Shell des Betriebssystems den Thread verwaltet.

Im folgenden Beispiel wird zuerst eine Instanz von Internet Explorer erstellt und der Inhalt des Favoritenordners im Browser angezeigt. Dann werden weitere Instanzen von Internet Explorer gestartet und bestimmte Seiten oder Sites angezeigt. Zuletzt wird Internet Explorer gestartet und das Fenster beim Navigieren zu einer bestimmten Site minimiert.


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


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

  • LinkDemand 

    für volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann nicht von teilweise vertrauenswürdigem Code verwendet werden.

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft