(0) exportieren Drucken
Alle erweitern

Process.Start-Methode (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.

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

public static Process Start (
	string fileName,
	string arguments
)
public static Process Start (
	String fileName, 
	String arguments
)
public static function Start (
	fileName : String, 
	arguments : String
) : Process

Parameter

fileName

Der Name einer Anwendungsdatei, die in dem Prozess ausgeführt werden soll.

arguments

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

Rückgabewert

Eine neue Process-Komponente, die dem Prozess zugeordnet ist, oder NULL (Nothing in Visual Basic), wenn keine Prozessressource gestartet wird (z. B. wenn ein vorhandener Prozess wiederverwendet wird).

AusnahmetypBedingung

ArgumentException

Der fileName-Parameter oder der arguments-Parameter ist NULL (Nothing in Visual Basic).

Win32Exception

Beim Öffnen der zugeordneten Datei ist ein Fehler aufgetreten.

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 Angabe des Dateinamens und der Befehlszeilenargumente. Die Überladung ordnet die Ressource einer neuen Process-Komponente zu. Wenn der Prozess bereits ausgeführt wird, wird kein zusätzlicher Prozess 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 (Nothing in Visual Basic) zurück.

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

Das Starten eines Prozesses durch Angabe des Dateinamens und der Argumente ähnelt dem Eingeben des Dateinamens und der Befehlszeilenargumente 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. Wenn der fileName-Parameter eine ausführbare Datei darstellt, kann der arguments-Parameter eine Datei darstellen, für die eine Aktion ausgeführt werden soll, z. B. die Textdatei in Notepad.exe myfile.txt.

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 und der zu übergebenden Befehlszeilenparameter.

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-Workerprozesses 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
{
	/// <summary>
	/// Shell for the sample.
	/// </summary>
	class MyProcess
	{
	   
		/// <summary>
		/// Opens the Internet Explorer application.
		/// </summary>
		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);
 
		}
		
		/// <summary>
		/// Opens urls and .html documents using Internet Explorer.
		/// </summary>
		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");
		}
		
		/// <summary>
		/// Uses the ProcessStartInfo class to start new processes, both in a minimized 
		/// mode.
		/// </summary>
		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();

       		}	
	}
}

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

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

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0
Anzeigen:
© 2014 Microsoft