Process.Start Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Startet eine Prozessressource und ordnet sie einer Process-Komponente zu.
Überlädt
Start(String, String, String, SecureString, String) |
Startet eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten, eines Benutzernamens, eines Kennworts und einer Domäne und ordnet die Ressource einer neuen Process-Komponente zu. |
Start(String, String, SecureString, String) |
Startet eine Prozessressource durch Angeben des Namens einer Anwendung, eines Benutzernamens und einer Domäne und ordnet die Ressource einer neuen Process-Komponente zu. |
Start(String, String) |
Startet eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten und ordnet die Ressource einer neuen Process-Komponente zu. |
Start(String) |
Startet eine Prozessressource, indem der Name eines Dokuments oder einer Anwendungsdatei angegeben wird, und ordnet die Ressource einer neuen Process-Komponente zu. |
Start(ProcessStartInfo) |
Startet die Prozessressource, die durch den Parameter mit den Startinformationen für den Prozess angegeben wird (z. B. den Dateinamen des zu startenden Prozesses), und ordnet die Ressource einer neuen Process-Komponente zu. |
Start() |
Startet die von der StartInfo-Eigenschaft dieser Process-Komponente angegebene Prozessressource (oder verwendet sie erneut) und ordnet diese der Komponente zu. |
Start(String, IEnumerable<String>) |
Hiermit wird eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten gestartet. |
Start(String, String, String, SecureString, String)
- Quelle:
- Process.Unix.cs
- Quelle:
- Process.Unix.cs
- Quelle:
- Process.Unix.cs
Wichtig
Diese API ist nicht CLS-kompatibel.
Startet eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten, eines Benutzernamens, eines Kennworts und einer Domäne und ordnet die Ressource einer neuen Process-Komponente zu.
public:
static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Diagnostics.Process? Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
[<System.CLSCompliant(false)>]
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String, userName As String, password As SecureString, domain As String) As Process
Parameter
- fileName
- String
Der Name einer Anwendungsdatei, die in dem Prozess ausgeführt werden soll.
- arguments
- String
Befehlszeilenargumente, die beim Starten des Prozesses übergeben werden sollen.
- userName
- String
Der beim Starten des Prozesses zu verwendende Benutzername.
- password
- SecureString
Eine SecureString, die das beim Starten des Prozesses zu verwendende Kennwort enthält.
- domain
- String
Die Domäne, die beim Starten des Prozesses verwendet werden soll.
Gibt zurück
Ein neuer Process, der der Prozessressource zugeordnet ist, oder null
, wenn keine Prozessressource gestartet wurde. Beachten Sie, dass ein neuer Prozess, der parallel zu bereits ausgeführten Instanzen des gleichen Prozesses gestartet wird, unabhängig von den anderen Instanzen ist. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true
festgelegt ist. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.
- Attribute
Ausnahmen
Es wurde kein Dateiname angegeben.
Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.
- oder -
Die in fileName
angegebene Datei konnte nicht gefunden werden.
- oder -
Die Summe aus der Länge der Argumente und der Länge des vollständigen Pfads zur zugehörigen Datei überschreitet 2080. Die dieser Ausnahme zugeordnete Fehlermeldung kann eine der folgenden sein: "Der an einen Systemaufruf übergebene Datenbereich ist zu klein." oder "Zugriff wird verweigert".
Das Prozessobjekt wurde bereits verworfen.
Dieser Member, die unter Linux oder macOS nicht unterstützt wird (nur .NET Core).
Hinweise
Verwenden Sie diese Überladung, um einen neuen Prozess und seinen primären Thread zu erstellen, indem Sie den Dateinamen, die Befehlszeilenargumente, den Benutzernamen, das Kennwort und die Domäne angeben. Der neue Prozess führt dann die angegebene ausführbare Datei im Sicherheitskontext der angegebenen Anmeldeinformationen (Benutzer, Domäne und Kennwort) aus.
Wichtig
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.
Hinweis
Wenn sich die ausführbare Datei auf einem Remotelaufwerk befindet, müssen Sie die Netzwerkfreigabe mithilfe eines URI (Uniform Resource Identifier, URI) und nicht mit einem Buchstaben des verknüpften Laufwerks identifizieren.
Hinweis
Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null
zurückgegeben.
Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Process instance zu erstellen. Die Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen eines neuen Process instance, Festlegen der FileNameEigenschaften , Arguments, UserName, Passwordund Domain der StartInfo Eigenschaft und zum Aufrufen Start des Process instance.
Ebenso wie das Dialogfeld Ausführen einen ausführbaren Dateinamen mit oder ohne .exe-Erweiterung akzeptieren kann, ist die .exe-Erweiterung im fileName
Parameter optional. Beispielsweise können Sie den fileName
Parameter auf "Notepad.exe" oder "Editor" festlegen. Wenn der fileName
Parameter eine ausführbare Datei darstellt, stellt der arguments
Parameter möglicherweise eine Datei dar, auf die reagiert werden soll, z. B. die Textdatei in Notepad.exe myfile.txt
.
Hinweis
Der Dateiname muss eine ausführbare Datei in den Überladungen darstellen, die Start Parameter , password
und domain
aufweisenuserName
.
Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren den Verlust von Systemressourcen. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.
Gilt für:
Start(String, String, SecureString, String)
- Quelle:
- Process.Unix.cs
- Quelle:
- Process.Unix.cs
- Quelle:
- Process.Unix.cs
Wichtig
Diese API ist nicht CLS-kompatibel.
Startet eine Prozessressource durch Angeben des Namens einer Anwendung, eines Benutzernamens und einer Domäne und ordnet die Ressource einer neuen Process-Komponente zu.
public:
static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Diagnostics.Process? Start (string fileName, string userName, System.Security.SecureString password, string domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
[<System.CLSCompliant(false)>]
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, userName As String, password As SecureString, domain As String) As Process
Parameter
- fileName
- String
Der Name einer Anwendungsdatei, die in dem Prozess ausgeführt werden soll.
- userName
- String
Der beim Starten des Prozesses zu verwendende Benutzername.
- password
- SecureString
Eine SecureString, die das beim Starten des Prozesses zu verwendende Kennwort enthält.
- domain
- String
Die Domäne, die beim Starten des Prozesses verwendet werden soll.
Gibt zurück
Ein neuer Process, der der Prozessressource zugeordnet ist, oder null
, wenn keine Prozessressource gestartet wurde. Beachten Sie, dass ein neuer Prozess, der parallel zu bereits ausgeführten Instanzen des gleichen Prozesses gestartet wird, unabhängig von den anderen Instanzen ist. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true
festgelegt ist. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.
- Attribute
Ausnahmen
Es wurde kein Dateiname angegeben.
Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.
- oder -
Die in fileName
angegebene Datei konnte nicht gefunden werden.
Das Prozessobjekt wurde bereits verworfen.
Dieser Member, die unter Linux oder macOS nicht unterstützt wird (nur .NET Core).
Beispiele
Das folgende Codebeispiel zeigt die Verwendung dieser Überladung zum Starten einer ausführbaren Datei und zeigt auch das Auslösen eines Win32Exception , wenn versucht wird, eine Anwendung zu starten, die einer nicht ausführenden Datei zugeordnet ist.
// NOTE: This example requires a text.txt file file in your Documents folder
using System;
using System.Diagnostics;
using System.Security;
using System.ComponentModel;
class Example
{
static void Main()
{
Console.Write("Enter your domain: ");
string domain = Console.ReadLine();
Console.Write("Enter you user name: ");
string uname = Console.ReadLine();
Console.Write("Enter your password: ");
SecureString password = new SecureString();
ConsoleKeyInfo key;
do
{
key = Console.ReadKey(true);
// Ignore any key out of range.
if (((int)key.Key) >= 33 && ((int)key.Key <= 90) && key.Key != ConsoleKey.Enter)
{
// Append the character to the password.
password.AppendChar(key.KeyChar);
Console.Write("*");
}
// Exit if Enter key is pressed.
} while (key.Key != ConsoleKey.Enter);
Console.WriteLine();
try
{
Console.WriteLine("\nTrying to launch NotePad using your login information...");
Process.Start("notepad.exe", uname, password, domain);
}
catch (Win32Exception ex)
{
Console.WriteLine(ex.Message);
}
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\";
try
{
// The following call to Start succeeds if test.txt exists.
Console.WriteLine("\nTrying to launch 'text.txt'...");
Process.Start(path + "text.txt");
}
catch (Win32Exception ex)
{
Console.WriteLine(ex.Message);
}
try
{
// Attempting to start in a shell using this Start overload fails. This causes
// the following exception, which is picked up in the catch block below:
// The specified executable is not a valid application for this OS platform.
Console.WriteLine("\nTrying to launch 'text.txt' with your login information...");
Process.Start(path + "text.txt", uname, password, domain);
}
catch (Win32Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
password.Dispose();
}
}
}
' This sample requires a text.txt file file in your documents folder.
' You'll also need to set the startup object in the project to Sub Main.
Imports System.Diagnostics
Imports System.Security
Imports System.ComponentModel
Module Program
Sub Main()
Console.Write("Enter your domain: ")
Dim domain As String = Console.ReadLine()
Console.Write("Enter you user name: ")
Dim uname As String = Console.ReadLine()
Console.Write("Enter your password: ")
Dim password As New SecureString()
Dim key As ConsoleKeyInfo
Do
key = Console.ReadKey(True)
' Ignore any key out of range.
If key.Key >= 33 AndAlso key.Key <= 90 AndAlso key.Key <> ConsoleKey.Enter Then
' Append the character to the password.
password.AppendChar(key.KeyChar)
Console.Write("*")
End If
' Exit if Enter key is pressed.
Loop While key.Key <> ConsoleKey.Enter
Console.WriteLine()
Try
Console.WriteLine(vbCrLf + "Trying to launch NotePad using your login information...")
Process.Start("notepad.exe", uname, password, domain)
Catch ex As Win32Exception
Console.WriteLine(ex.Message)
End Try
Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\"
Try
' The following call to Start succeeds if test.txt exists.
Console.WriteLine(vbCrLf + "Trying to launch 'text.txt'...")
Process.Start(path + "Text.txt")
Catch ex As Win32Exception
Console.WriteLine(ex.Message)
End Try
Try
' Attempting to start in a shell using this Start overload fails. This causes
' the following exception, which is picked up in the catch block below:
' The specified executable is not a valid application for this OS platform.
Console.WriteLine(vbCrLf + "Trying to launch 'text.txt' with your login information...")
Process.Start(path + "Text.txt", uname, password, domain)
Catch ex As Win32Exception
Console.WriteLine(ex.Message)
Finally
password.Dispose()
End Try
End Sub
End Module
Hinweise
Verwenden Sie diese Überladung, um einen neuen Prozess und seinen primären Thread zu erstellen, indem Sie den Dateinamen, den Benutzernamen, das Kennwort und die Domäne angeben. Der neue Prozess führt dann die angegebene ausführbare Datei im Sicherheitskontext der angegebenen Anmeldeinformationen (Benutzer, Domäne und Kennwort) aus.
Wichtig
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.
Hinweis
Wenn sich die ausführbare Datei auf einem Remotelaufwerk befindet, müssen Sie die Netzwerkfreigabe mithilfe eines URI (Uniform Resource Identifier, URI) und nicht mit einem Buchstaben des verknüpften Laufwerks identifizieren.
Hinweis
Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null
zurückgegeben.
Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Process instance zu erstellen. Die Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen eines neuen Process instance, Festlegen der FileNameEigenschaften , UserName, Passwordund Domain der StartInfo -Eigenschaft und zum Aufrufen Start des Process instance.
Ebenso wie das Dialogfeld Ausführen einen ausführbaren Dateinamen mit oder ohne .exe-Erweiterung akzeptieren kann, ist die .exe-Erweiterung im fileName
Parameter optional. Beispielsweise können Sie den fileName
Parameter auf "Notepad.exe" oder "Editor" festlegen. Wenn der fileName
Parameter eine ausführbare Datei darstellt, stellt der arguments
Parameter möglicherweise eine Datei dar, auf die reagiert werden soll, z. B. die Textdatei in Notepad.exe myfile.txt
.
Hinweis
Der Dateiname muss eine ausführbare Datei in den Überladungen darstellen, die Start Parameter , password
und domain
aufweisenuserName
.
Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren den Verlust von Systemressourcen. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.
Gilt für:
Start(String, String)
- Quelle:
- Process.cs
- Quelle:
- Process.cs
- Quelle:
- Process.cs
Startet eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten und ordnet die Ressource einer neuen Process-Komponente zu.
public:
static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments);
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String) As Process
Parameter
- fileName
- String
Der Name einer Anwendungsdatei, die in dem Prozess ausgeführt werden soll.
- arguments
- String
Befehlszeilenargumente, die beim Starten des Prozesses übergeben werden sollen.
Gibt zurück
Ein neuer Process, der der Prozessressource zugeordnet ist, oder null
, wenn keine Prozessressource gestartet wurde. Beachten Sie, dass ein neuer Prozess, der parallel zu bereits ausgeführten Instanzen des gleichen Prozesses gestartet wird, unabhängig von den anderen Instanzen ist. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true
festgelegt ist. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.
- Attribute
Ausnahmen
Der fileName
-Parameter oder der arguments
-Parameter ist null
.
Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.
- oder -
Die in fileName
angegebene Datei konnte nicht gefunden werden.
- oder -
Die Summe aus der Länge der Argumente und der Länge des vollständigen Pfads des Prozesses überschreitet 2080. Die dieser Ausnahme zugeordnete Fehlermeldung kann eine der folgenden sein: "Der an einen Systemaufruf übergebene Datenbereich ist zu klein." oder "Zugriff wird verweigert".
Das Prozessobjekt wurde bereits verworfen.
Die PATH-Umgebungsvariable weist eine Zeichenfolge mit Anführungszeichen auf.
Beispiele
Im folgenden Beispiel wird zunächst eine instance von Internet Explorer und der Inhalt des Ordners Favoriten im Browser angezeigt. Anschließend werden einige andere Instanzen von Internet-Explorer gestartet und einige bestimmte Seiten oder Websites angezeigt. Schließlich wird internet Explorer gestartet, wobei das Fenster beim Navigieren zu einer bestimmten Website minimiert wird.
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;
// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
// Start Internet Explorer. Defaults to the home page.
Process::Start("IExplore.exe");
// Display the contents of the favorites folder in the browser.
Process::Start(myFavoritesPath);
}
// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
// URLs are not considered documents. They can only be opened
// by passing them as arguments.
Process::Start("IExplore.exe", "www.northwindtraders.com");
// Start a Web page using a browser associated with .html and .asp files.
Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
startInfo->WindowStyle = ProcessWindowStyle::Minimized;
Process::Start(startInfo);
startInfo->Arguments = "www.northwindtraders.com";
Process::Start(startInfo);
}
int main()
{
// Get the path that stores favorite links.
String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
OpenApplication(myFavoritesPath);
OpenWithArguments();
OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;
namespace MyProcessSample
{
class MyProcess
{
// Opens the Internet Explorer application.
void OpenApplication(string myFavoritesPath)
{
// Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe");
// Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath);
}
// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com");
// Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(startInfo);
startInfo.Arguments = "www.northwindtraders.com";
Process.Start(startInfo);
}
static void Main()
{
// Get the path that stores favorite links.
string myFavoritesPath =
Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
MyProcess myProcess = new MyProcess();
myProcess.OpenApplication(myFavoritesPath);
myProcess.OpenWithArguments();
myProcess.OpenWithStartInfo();
}
}
}
Imports System.Diagnostics
Imports System.ComponentModel
Namespace MyProcessSample
Class MyProcess
' Opens the Internet Explorer application.
Public Sub OpenApplication(myFavoritesPath As String)
' Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe")
' Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath)
End Sub
' Opens URLs and .html documents using Internet Explorer.
Sub OpenWithArguments()
' URLs are not considered documents. They can only be opened
' by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com")
' Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
End Sub
' Uses the ProcessStartInfo class to start new processes,
' both in a minimized mode.
Sub OpenWithStartInfo()
Dim startInfo As New ProcessStartInfo("IExplore.exe")
startInfo.WindowStyle = ProcessWindowStyle.Minimized
Process.Start(startInfo)
startInfo.Arguments = "www.northwindtraders.com"
Process.Start(startInfo)
End Sub
Shared Sub Main()
' Get the path that stores favorite links.
Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
Dim myProcess As New MyProcess()
myProcess.OpenApplication(myFavoritesPath)
myProcess.OpenWithArguments()
myProcess.OpenWithStartInfo()
End Sub
End Class
End Namespace 'MyProcessSample
Hinweise
Verwenden Sie diese Überladung, um eine Prozessressource zu starten, indem Sie den Dateinamen und die Befehlszeilenargumente angeben. Die Überladung ordnet die Ressource einem neuen Process Objekt zu.
Wichtig
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.
Hinweis
Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null
zurückgegeben.
Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Process instance zu erstellen. Die Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen eines neuen Process instance, Festlegen der FileName Elemente und Arguments der StartInfo Eigenschaft und zum Aufrufen Start des Process instance.
Das Starten eines Prozesses durch Angabe des Dateinamens und der Argumente ähnelt der Eingabe des Dateinamens und der Run
Befehlszeilenargumente im Dialogfeld des Windows-Menüs Start
. Daher muss der Dateiname keine ausführbare Datei darstellen. Sie können einen beliebigen Dateityp werden für die die Erweiterung mit einer Anwendung, die auf dem System installierten zugeordnet wurde. Der Dateiname kann beispielsweise eine .txt-Erweiterung haben, wenn Sie Textdateien mit einem Editor wie Editor verknüpft haben, oder er kann eine .doc haben, wenn Sie .doc Dateien einem Textverarbeitungstool wie Microsoft Word zugeordnet haben. Auf ähnliche Weise, wie das Run
Dialogfeld einen ausführbaren Dateinamen mit oder ohne .exe-Erweiterung akzeptieren kann, ist die .exe-Erweiterung im fileName
Parameter optional. Beispielsweise können Sie den fileName
Parameter auf "Notepad.exe" oder "Editor" festlegen. Wenn der fileName
Parameter eine ausführbare Datei darstellt, stellt der arguments
Parameter möglicherweise eine Datei dar, auf die reagiert werden soll, z. B. die Textdatei in Notepad.exe myfile.txt
. Wenn der fileName
Parameter eine Befehlsdatei (.cmd) darstellt, muss der arguments
Parameter entweder ein "/c
" oder "/k
"-Argument enthalten, um anzugeben, ob das Befehlsfenster nach Abschluss beendet wird oder verbleibt.
Im Gegensatz zu den anderen Überladungen ist die Überladung von Start , die keine Parameter enthält, kein static
Element. Verwenden Sie diese Überladung, wenn Sie bereits eine Process instance erstellt und Startinformationen (einschließlich des Dateinamens) angegeben haben und eine Prozessressource starten und sie dem vorhandenen Process instance zuordnen möchten. Verwenden Sie eine der static
Überladungen, wenn Sie eine neue Process Komponente erstellen möchten, anstatt einen Prozess für eine vorhandene Komponente zu starten. Sowohl diese Überladung als auch die Überladung ohne Parameter ermöglichen es Ihnen, den Dateinamen der zu startenden Prozessressource und die zu übergebenden Befehlszeilenargumente anzugeben.
Wenn Sie eine Pfadvariable in Ihrem System mithilfe von Anführungszeichen deklariert haben, müssen Sie diesen Pfad beim Starten eines Prozesses, der an diesem Speicherort gefunden wurde, vollständig qualifizieren. Andernfalls findet das System den Pfad nicht. Wenn c:\mypath
sie sich beispielsweise nicht in Ihrem Pfad befindet und Sie ihn mithilfe von Anführungszeichen hinzufügen: path = %path%;"c:\mypath"
, müssen Sie jeden Prozess vollständig c:\mypath
qualifizieren, wenn Sie ihn starten.
Hinweis
ASP.NET Webseiten- und Serversteuerungscode wird im Kontext des ASP.NET-Workerprozesses auf dem Webserver ausgeführt. Wenn Sie die Start -Methode in einer ASP.NET Webseite oder einem Serversteuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt. Der Prozess beginnt nicht im selben Kontext wie der Clientbrowser und hat keinen Zugriff auf den Benutzerdesktop.
Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren den Verlust von Systemressourcen. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.
Hier ist ein Hinweis zu Apartmentzustände in verwalteten Threads erforderlich. Wenn UseShellExecute sich true
die Eigenschaft der Prozesskomponente StartInfo befindet, stellen Sie sicher, dass Sie ein Threadingmodell für Ihre Anwendung festgelegt haben, indem Sie das -Attribut [STAThread]
für die main()
-Methode festlegen. Andernfalls kann sich ein verwalteter Thread in einem unknown
Zustand befinden oder in den MTA
Zustand versetzt werdentrue
.UseShellExecute Einige Methoden erfordern, dass der Wohnungszustand nicht lautet unknown
. Wenn der Zustand nicht explizit festgelegt ist, ist die Anwendung auf eine solche Methode standardmäßig MTA
festgelegt, und nach dem Festlegen kann der Apartmentzustand nicht mehr geändert werden. Bewirkt jedoch, dass eine Ausnahme ausgelöst wird, MTA
wenn die Betriebssystemshell den Thread verwaltet.
Weitere Informationen
Gilt für:
Start(String)
- Quelle:
- Process.cs
- Quelle:
- Process.cs
- Quelle:
- Process.cs
Startet eine Prozessressource, indem der Name eines Dokuments oder einer Anwendungsdatei angegeben wird, und ordnet die Ressource einer neuen Process-Komponente zu.
public:
static System::Diagnostics::Process ^ Start(System::String ^ fileName);
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName);
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String) As Process
Parameter
- fileName
- String
Der Name eines Dokuments oder einer Anwendungsdatei, das bzw. die im Prozess ausgeführt werden soll.
Gibt zurück
Ein neuer Process, der der Prozessressource zugeordnet ist, oder null
, wenn keine Prozessressource gestartet wurde. Beachten Sie, dass ein neuer Prozess, der parallel zu bereits ausgeführten Instanzen des gleichen Prozesses gestartet wird, unabhängig von den anderen Instanzen ist. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true
festgelegt ist. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.
- Attribute
Ausnahmen
Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.
- oder -
Die in fileName
angegebene Datei konnte nicht gefunden werden.
Das Prozessobjekt wurde bereits verworfen.
Die PATH-Umgebungsvariable weist eine Zeichenfolge mit Anführungszeichen auf.
Beispiele
Im folgenden Beispiel wird zunächst eine instance von Internet Explorer und der Inhalt des Ordners Favoriten im Browser angezeigt. Anschließend werden einige andere Instanzen von Internet-Explorer gestartet und einige bestimmte Seiten oder Websites angezeigt. Schließlich wird internet Explorer gestartet, wobei das Fenster beim Navigieren zu einer bestimmten Website minimiert wird.
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;
// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
// Start Internet Explorer. Defaults to the home page.
Process::Start("IExplore.exe");
// Display the contents of the favorites folder in the browser.
Process::Start(myFavoritesPath);
}
// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
// URLs are not considered documents. They can only be opened
// by passing them as arguments.
Process::Start("IExplore.exe", "www.northwindtraders.com");
// Start a Web page using a browser associated with .html and .asp files.
Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
startInfo->WindowStyle = ProcessWindowStyle::Minimized;
Process::Start(startInfo);
startInfo->Arguments = "www.northwindtraders.com";
Process::Start(startInfo);
}
int main()
{
// Get the path that stores favorite links.
String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
OpenApplication(myFavoritesPath);
OpenWithArguments();
OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;
namespace MyProcessSample
{
class MyProcess
{
// Opens the Internet Explorer application.
void OpenApplication(string myFavoritesPath)
{
// Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe");
// Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath);
}
// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com");
// Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(startInfo);
startInfo.Arguments = "www.northwindtraders.com";
Process.Start(startInfo);
}
static void Main()
{
// Get the path that stores favorite links.
string myFavoritesPath =
Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
MyProcess myProcess = new MyProcess();
myProcess.OpenApplication(myFavoritesPath);
myProcess.OpenWithArguments();
myProcess.OpenWithStartInfo();
}
}
}
Imports System.Diagnostics
Imports System.ComponentModel
Namespace MyProcessSample
Class MyProcess
' Opens the Internet Explorer application.
Public Sub OpenApplication(myFavoritesPath As String)
' Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe")
' Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath)
End Sub
' Opens URLs and .html documents using Internet Explorer.
Sub OpenWithArguments()
' URLs are not considered documents. They can only be opened
' by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com")
' Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
End Sub
' Uses the ProcessStartInfo class to start new processes,
' both in a minimized mode.
Sub OpenWithStartInfo()
Dim startInfo As New ProcessStartInfo("IExplore.exe")
startInfo.WindowStyle = ProcessWindowStyle.Minimized
Process.Start(startInfo)
startInfo.Arguments = "www.northwindtraders.com"
Process.Start(startInfo)
End Sub
Shared Sub Main()
' Get the path that stores favorite links.
Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
Dim myProcess As New MyProcess()
myProcess.OpenApplication(myFavoritesPath)
myProcess.OpenWithArguments()
myProcess.OpenWithStartInfo()
End Sub
End Class
End Namespace 'MyProcessSample
Hinweise
Verwenden Sie diese Überladung, um eine Prozessressource zu starten, indem Sie ihren Dateinamen angeben. Die Überladung ordnet die Ressource einem neuen Process Objekt zu.
Wichtig
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.
Hinweis
Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null
zurückgegeben.
Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Process instance zu erstellen. Die Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen eines neuen Process instance, Festlegen des FileName Elements der StartInfo -Eigenschaft und Aufrufen Start des Process instance.
Sie können eine ClickOnce-Anwendung starten, indem Sie den fileName
Parameter auf den Speicherort (z. B. eine Webadresse) festlegen, von dem aus Sie die Anwendung ursprünglich installiert haben. Starten Sie eine ClickOnce-Anwendung nicht, indem Sie ihren installierten Speicherort auf Ihrer Festplatte angeben.
Das Starten eines Prozesses durch Angabe des Dateinamens ähnelt der Eingabe der Informationen im Run
Dialogfeld des Windows-Menüs Start
. Daher muss der Dateiname keine ausführbare Datei darstellen. Sie können einen beliebigen Dateityp werden für die die Erweiterung mit einer Anwendung, die auf dem System installierten zugeordnet wurde. Der Dateiname kann beispielsweise eine .txt-Erweiterung haben, wenn Sie Textdateien mit einem Editor wie Editor verknüpft haben, oder er kann eine .doc haben, wenn Sie .doc Dateien einem Textverarbeitungstool wie Microsoft Word zugeordnet haben. Auf ähnliche Weise, wie das Run
Dialogfeld einen ausführbaren Dateinamen mit oder ohne .exe-Erweiterung akzeptieren kann, ist die .exe-Erweiterung im fileName
Parameter optional. Beispielsweise können Sie den fileName
Parameter auf "Notepad.exe" oder "Editor" festlegen.
Diese Überladung lässt keine Befehlszeilenargumente für den Prozess zu. Wenn Sie ein oder mehrere Befehlszeilenargumente für den Prozess angeben müssen, verwenden Sie die Process.Start(ProcessStartInfo) - oder Process.Start(String, String) - Überladungen.
Im Gegensatz zu den anderen Überladungen ist die Überladung von Start , die keine Parameter enthält, kein static
Element. Verwenden Sie diese Überladung, wenn Sie bereits eine Process instance erstellt und Startinformationen (einschließlich des Dateinamens) angegeben haben und eine Prozessressource starten und sie dem vorhandenen Process instance zuordnen möchten. Verwenden Sie eine der static
Überladungen, wenn Sie eine neue Process Komponente erstellen möchten, anstatt einen Prozess für eine vorhandene Komponente zu starten. Sowohl diese Überladung als auch die Überladung ohne Parameter ermöglichen es Ihnen, den Dateinamen der zu startenden Prozessressource anzugeben.
Wenn Sie eine Pfadvariable in Ihrem System mithilfe von Anführungszeichen deklariert haben, müssen Sie diesen Pfad beim Starten eines Prozesses, der an diesem Speicherort gefunden wurde, vollständig qualifizieren. Andernfalls findet das System den Pfad nicht. Wenn c:\mypath
sie sich beispielsweise nicht in Ihrem Pfad befindet und Sie ihn mithilfe von Anführungszeichen hinzufügen: path = %path%;"c:\mypath"
, müssen Sie jeden Prozess vollständig c:\mypath
qualifizieren, wenn Sie ihn starten.
Hinweis
ASP.NET Webseiten- und Serversteuerungscode wird im Kontext des ASP.NET-Workerprozesses auf dem Webserver ausgeführt. Wenn Sie die Start -Methode in einer ASP.NET Webseite oder einem Serversteuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt. Der Prozess beginnt nicht im selben Kontext wie der Clientbrowser und hat keinen Zugriff auf den Benutzerdesktop.
Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren den Verlust von Systemressourcen. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.
Hier ist ein Hinweis zu Apartmentzustände in verwalteten Threads erforderlich. Wenn UseShellExecute sich true
die Eigenschaft der Prozesskomponente StartInfo befindet, stellen Sie sicher, dass Sie ein Threadingmodell für Ihre Anwendung festgelegt haben, indem Sie das -Attribut [STAThread]
für die main()
-Methode festlegen. Andernfalls kann sich ein verwalteter Thread in einem unknown
Zustand befinden oder in den MTA
Zustand versetzt werden.UseShellExecutetrue
Einige Methoden erfordern, dass der Wohnungszustand nicht lautet unknown
. Wenn der Zustand nicht explizit festgelegt ist, wenn die Anwendung auf eine solche Methode trifft, wird standardmäßig festgelegt MTA
, und nach dem Festlegen kann der Zustand der Wohnung nicht mehr geändert werden. Bewirkt jedoch, dass eine Ausnahme ausgelöst wird, MTA
wenn die Betriebssystemshell den Thread verwaltet.
Weitere Informationen
Gilt für:
Start(ProcessStartInfo)
- Quelle:
- Process.cs
- Quelle:
- Process.cs
- Quelle:
- Process.cs
Startet die Prozessressource, die durch den Parameter mit den Startinformationen für den Prozess angegeben wird (z. B. den Dateinamen des zu startenden Prozesses), und ordnet die Ressource einer neuen Process-Komponente zu.
public:
static System::Diagnostics::Process ^ Start(System::Diagnostics::ProcessStartInfo ^ startInfo);
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
public static System.Diagnostics.Process Start (System.Diagnostics.ProcessStartInfo startInfo);
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
Public Shared Function Start (startInfo As ProcessStartInfo) As Process
Parameter
- startInfo
- ProcessStartInfo
Die ProcessStartInfo, die die Informationen zum Starten des Prozesses enthält, einschließlich Dateiname und Befehlszeilenargumente.
Gibt zurück
Ein neuer Process, der der Prozessressource zugeordnet ist, oder null
, wenn keine Prozessressource gestartet wurde. Beachten Sie, dass ein neuer Prozess, der parallel zu bereits ausgeführten Instanzen des gleichen Prozesses gestartet wird, unabhängig von den anderen Instanzen ist. Außerdem gibt „Start“ möglicherweise einen nicht leeren (nicht NULL) Prozess zurück, dessen Eigenschaft HasExited bereits auf true
festgelegt ist. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz seiner selbst aktiviert und sich dann beendet.
- Attribute
Ausnahmen
In der FileName-Eigenschaft des startInfo
-Parameters wurde kein Dateiname angegeben.
- oder -
Die UseShellExecute-Eigenschaft des startInfo
-Parameters ist true
, und die RedirectStandardInput-, RedirectStandardOutput- oder RedirectStandardError-Eigenschaft ist ebenfalls true
.
- oder -
Die UseShellExecute-Eigenschaft des startInfo
-Parameters ist true
, und die UserName-Eigenschaft ist nicht null
oder leer, oder die Password-Eigenschaft ist nicht null
.
Der startInfo
-Parameter ist null
.
Das Prozessobjekt wurde bereits verworfen.
Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.
- oder -
Die in der FileName-Eigenschaft des startInfo
-Parameters angegebene Datei wurde nicht gefunden.
- oder -
Die Summe aus der Länge der Argumente und der Länge des vollständigen Pfads des Prozesses überschreitet 2080. Die dieser Ausnahme zugeordnete Fehlermeldung kann eine der folgenden sein: "Der an einen Systemaufruf übergebene Datenbereich ist zu klein." oder "Der Zugriff wird verweigert."
Methode, die von Betriebssystemen ohne Shellunterstützung wie z.B. Nano Server nicht unterstützt wird (nur .NET Core).
Beispiele
Im folgenden Beispiel wird zunächst eine instance der Internet-Explorer erstellt und der Inhalt des Ordners Favoriten im Browser angezeigt. Anschließend werden einige andere Instanzen von Internet Explorer gestartet und einige bestimmte Seiten oder Websites angezeigt. Schließlich wird internet Explorer gestartet, wobei das Fenster beim Navigieren zu einer bestimmten Website minimiert wird.
Weitere Beispiele für andere Verwendungen dieser Methode finden Sie in den einzelnen Eigenschaften der ProcessStartInfo -Klasse.
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;
// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
// Start Internet Explorer. Defaults to the home page.
Process::Start("IExplore.exe");
// Display the contents of the favorites folder in the browser.
Process::Start(myFavoritesPath);
}
// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
// URLs are not considered documents. They can only be opened
// by passing them as arguments.
Process::Start("IExplore.exe", "www.northwindtraders.com");
// Start a Web page using a browser associated with .html and .asp files.
Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
startInfo->WindowStyle = ProcessWindowStyle::Minimized;
Process::Start(startInfo);
startInfo->Arguments = "www.northwindtraders.com";
Process::Start(startInfo);
}
int main()
{
// Get the path that stores favorite links.
String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
OpenApplication(myFavoritesPath);
OpenWithArguments();
OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;
namespace MyProcessSample
{
class MyProcess
{
// Opens the Internet Explorer application.
void OpenApplication(string myFavoritesPath)
{
// Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe");
// Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath);
}
// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com");
// Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(startInfo);
startInfo.Arguments = "www.northwindtraders.com";
Process.Start(startInfo);
}
static void Main()
{
// Get the path that stores favorite links.
string myFavoritesPath =
Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
MyProcess myProcess = new MyProcess();
myProcess.OpenApplication(myFavoritesPath);
myProcess.OpenWithArguments();
myProcess.OpenWithStartInfo();
}
}
}
Imports System.Diagnostics
Imports System.ComponentModel
Namespace MyProcessSample
Class MyProcess
' Opens the Internet Explorer application.
Public Sub OpenApplication(myFavoritesPath As String)
' Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe")
' Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath)
End Sub
' Opens URLs and .html documents using Internet Explorer.
Sub OpenWithArguments()
' URLs are not considered documents. They can only be opened
' by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com")
' Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
End Sub
' Uses the ProcessStartInfo class to start new processes,
' both in a minimized mode.
Sub OpenWithStartInfo()
Dim startInfo As New ProcessStartInfo("IExplore.exe")
startInfo.WindowStyle = ProcessWindowStyle.Minimized
Process.Start(startInfo)
startInfo.Arguments = "www.northwindtraders.com"
Process.Start(startInfo)
End Sub
Shared Sub Main()
' Get the path that stores favorite links.
Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
Dim myProcess As New MyProcess()
myProcess.OpenApplication(myFavoritesPath)
myProcess.OpenWithArguments()
myProcess.OpenWithStartInfo()
End Sub
End Class
End Namespace 'MyProcessSample
Hinweise
Verwenden Sie diese Überladung, um eine Prozessressource zu starten, indem Sie eine ProcessStartInfo instance angeben. Die Überladung ordnet die Ressource einem neuen Process -Objekt zu.
Wichtig
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.
Hinweis
Wenn die Adresse der zu startenden ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und null
zurückgegeben.
Mit dieser Überladung können Sie einen Prozess starten, ohne zuerst eine neue Process instance zu erstellen. Die Verwendung dieser Überladung mit einem ProcessStartInfo Parameter ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process instance, zum Festlegen der StartInfo Eigenschaften und zum Aufrufen Start der Process instance.
Wenn Sie einen ProcessStartInfo instance als Parameter verwenden, können Sie mit der größten Kontrolle darüber aufrufenStart, was an den Aufruf übergeben wird, um den Prozess zu starten. Wenn Sie nur einen Dateinamen oder einen Dateinamen und Argumente übergeben müssen, ist es nicht erforderlich, eine neue ProcessStartInfo instance zu erstellen, obwohl dies eine Option ist. Die einzige Process.StartInfo Eigenschaft, die festgelegt werden muss, ist die FileName -Eigenschaft. Die FileName -Eigenschaft muss keine ausführbare Datei darstellen. Es kann sich um einen beliebigen Dateityp handeln, für den die Erweiterung einer Anwendung zugeordnet wurde, die auf dem System installiert ist. Die Eigenschaft kann beispielsweise eine .txt-Erweiterung aufweisen, FileName wenn Sie Textdateien mit einem Editor wie Editor verknüpft haben, oder eine .doc-Erweiterung, wenn Sie .doc Dateien einem Textverarbeitungstool zugeordnet haben, z. B. Microsoft Word.
Sie können eine ClickOnce-Anwendung starten, indem Sie den Speicherort (z. B. eine Webadresse) angeben, von dem aus Sie die Anwendung ursprünglich installiert haben. Starten Sie eine ClickOnce-Anwendung nicht, indem Sie den installierten Speicherort auf Ihrer Festplatte angeben.
Wenn die ProcessStartInfo.UserName Eigenschaften und ProcessStartInfo.Password der StartInfo instance festgelegt sind, wird die nicht verwaltete CreateProcessWithLogonW
Funktion aufgerufen, die den Prozess in einem neuen Fenster startet, auch wenn der ProcessStartInfo.CreateNoWindow Eigenschaftswert true
oder der ProcessStartInfo.WindowStyle Eigenschaftswert istProcessWindowStyle.Hidden. Wenn die ProcessStartInfo.Domain -Eigenschaft ist null
, muss die ProcessStartInfo.UserName Eigenschaft im UPN-Format vorliegen, benutzerseitig@DNS_domain_name.
Im Gegensatz zu den anderen Überladungen ist die Überladung von Start , die keine Parameter enthält, kein static
Member. Verwenden Sie diese Überladung, wenn Sie bereits eine Process instance erstellt und Startinformationen (einschließlich des Dateinamens) angegeben haben und eine Prozessressource starten und sie dem vorhandenen Process instance zuordnen möchten. Verwenden Sie eine der static
Überladungen, wenn Sie eine neue Process Komponente erstellen möchten, anstatt einen Prozess für eine vorhandene Komponente zu starten. Sowohl diese Überladung als auch die Überladung ohne Parameter ermöglichen es Ihnen, die Startinformationen für die Prozessressource mithilfe eines ProcessStartInfo instance anzugeben.
Wenn Sie eine Pfadvariable in Ihrem System mithilfe von Anführungszeichen deklariert haben, müssen Sie diesen Pfad vollständig qualifizieren, wenn Sie einen Prozess starten, der an diesem Speicherort gefunden wurde. Andernfalls findet das System den Pfad nicht. Wenn c:\mypath
sich z. B. nicht in Ihrem Pfad befindet und Sie ihn mithilfe von Anführungszeichen hinzufügen: path = %path%;"c:\mypath"
, müssen Sie alle Prozesse in c:\mypath
vollständig qualifizieren, wenn Sie ihn starten.
Hinweis
ASP.NET Webseiten- und Serversteuerungscode wird im Kontext des ASP.NET-Arbeitsprozesses auf dem Webserver ausgeführt. Wenn Sie die Start -Methode in einem ASP.NET Webseite oder Serversteuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt. Der Prozess startet nicht im selben Kontext wie der Clientbrowser und hat keinen Zugriff auf den Benutzerdesktop.
Wenn Sie Start einen Prozess mit starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren den Verlust von Systemressourcen. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.
Hier ist ein Hinweis zu Apartmentzustände in verwalteten Threads erforderlich. true
Wenn UseShellExecute sich für den startInfo
-Parameter befindet, stellen Sie sicher, dass Sie ein Threadingmodell für Ihre Anwendung festgelegt haben, indem Sie das -Attribut [STAThread]
für die main()
-Methode festlegen. Andernfalls kann sich ein verwalteter Thread in einem unknown
Zustand befinden oder in den MTA
Zustand versetzt werden.UseShellExecutetrue
Einige Methoden erfordern, dass der Wohnungszustand nicht lautet unknown
. Wenn der Zustand nicht explizit festgelegt ist, wenn die Anwendung auf eine solche Methode trifft, wird standardmäßig festgelegt MTA
, und nach dem Festlegen kann der Zustand der Wohnung nicht mehr geändert werden. Bewirkt jedoch, dass eine Ausnahme ausgelöst wird, MTA
wenn die Betriebssystemshell den Thread verwaltet.
Weitere Informationen
Gilt für:
Start()
- Quelle:
- Process.cs
- Quelle:
- Process.cs
- Quelle:
- Process.cs
public:
bool Start();
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public bool Start ();
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
member this.Start : unit -> bool
Public Function Start () As Boolean
Gibt zurück
true
, wenn eine Prozessressource gestartet wird. false
, wenn keine neue Prozessressource gestartet wird, sondern z. B. eine vorhandene Prozessressource wiederverwendet wird.
- Attribute
Ausnahmen
In StartInfo der Komponente Process wurde kein Dateiname angegeben.
- oder -
Das UseShellExecute -Member der StartInfo -Eigenschaft ist true
, während RedirectStandardInput, RedirectStandardOutputoder RedirectStandardErrortrue
ist.
Beim Öffnen der zugehörigen Datei ist ein Fehler aufgetreten.
Das Prozessobjekt wurde bereits verworfen.
Methode, die von Betriebssystemen ohne Shellunterstützung wie z.B. Nano Server nicht unterstützt wird (nur .NET Core).
Beispiele
Im folgenden Beispiel wird ein instance der Process -Klasse verwendet, um einen Prozess zu starten.
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;
int main()
{
Process^ myProcess = gcnew Process;
try
{
myProcess->StartInfo->UseShellExecute = false;
// You can start any process, HelloWorld is a do-nothing example.
myProcess->StartInfo->FileName = "C:\\HelloWorld.exe";
myProcess->StartInfo->CreateNoWindow = true;
myProcess->Start();
// This code assumes the process you are starting will terminate itself.
// Given that it is started without a window so you cannot terminate it
// on the desktop, it must terminate itself or you can do it programmatically
// from this application using the Kill method.
}
catch ( Exception^ e )
{
Console::WriteLine( e->Message );
}
}
using System;
using System.Diagnostics;
using System.ComponentModel;
namespace MyProcessSample
{
class MyProcess
{
public static void Main()
{
try
{
using (Process myProcess = new Process())
{
myProcess.StartInfo.UseShellExecute = false;
// You can start any process, HelloWorld is a do-nothing example.
myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
// This code assumes the process you are starting will terminate itself.
// Given that it is started without a window so you cannot terminate it
// on the desktop, it must terminate itself or you can do it programmatically
// from this application using the Kill method.
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
Imports System.Diagnostics
Imports System.ComponentModel
Namespace MyProcessSample
Class MyProcess
Public Shared Sub Main()
Try
Using myProcess As New Process()
myProcess.StartInfo.UseShellExecute = False
' You can start any process, HelloWorld is a do-nothing example.
myProcess.StartInfo.FileName = "C:\\HelloWorld.exe"
myProcess.StartInfo.CreateNoWindow = True
myProcess.Start()
' This code assumes the process you are starting will terminate itself.
' Given that it is started without a window so you cannot terminate it
' on the desktop, it must terminate itself or you can do it programmatically
' from this application using the Kill method.
End Using
Catch e As Exception
Console.WriteLine((e.Message))
End Try
End Sub
End Class
End Namespace
Hinweise
Verwenden Sie diese Überladung, um eine Prozessressource zu starten und sie der aktuellen Process Komponente zuzuordnen. Der Rückgabewert true
gibt an, dass eine neue Prozessressource gestartet wurde. Wenn die vom Member der FileNameStartInfo -Eigenschaft angegebene Prozessressource bereits auf dem Computer ausgeführt wird, wird keine zusätzliche Prozessressource gestartet. Stattdessen wird die ausgeführte Prozessressource wiederverwendet und false
zurückgegeben.
Sie können eine ClickOnce-Anwendung starten, indem Sie den Speicherort (z. B. eine Webadresse) angeben, von dem aus Sie die Anwendung ursprünglich installiert haben. Starten Sie eine ClickOnce-Anwendung nicht, indem Sie den installierten Speicherort auf Ihrer Festplatte angeben.
Wichtig
Das Verwenden einer Instanz dieses Objekts mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Verwenden Sie dieses Objekt nur mit vertrauenswürdigen Daten. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.
Hinweis
Wenn Sie Visual Studio verwenden, ist diese Überladung der Start -Methode die, die Sie in Ihren Code einfügen, nachdem Sie eine Process Komponente in den Designer gezogen haben. Verwenden Sie das Properties
Fenster, um die StartInfo
Kategorie zu erweitern und den entsprechenden Wert in die FileName
-Eigenschaft zu schreiben. Ihre Änderungen werden in der Prozedur des Formulars InitializeComponent
angezeigt.
Diese Überladung von Start ist keine static
Methode. Sie müssen sie aus einer instance der Process -Klasse aufrufen. Vor dem Aufrufen Startvon müssen Sie zunächst Eigenschafteninformationen für diese Process instance angebenStartInfo, da diese Informationen verwendet werden, um die zu startende Prozessressource zu bestimmen.
Die anderen Überladungen der Start -Methode sind static
Member. Sie müssen keine instance der Process Komponente erstellen, bevor Sie diese Überladungen der -Methode aufrufen. Stattdessen können Sie für die Process Klasse selbst aufrufenStart, und eine neue Process Komponente wird erstellt, wenn der Prozess gestartet wurde. Oder wird zurückgegeben, null
wenn ein Prozess wiederverwendet wurde. Die Prozessressource wird automatisch der neuen Process Komponente zugeordnet, die von der Start -Methode zurückgegeben wird.
Die StartInfo Elemente können verwendet werden, um die Funktionalität des Run
Dialogfelds des Windows-Menüs Start
zu duplizieren. Alles, was in eine Befehlszeile eingegeben werden kann, kann gestartet werden, indem die entsprechenden Werte in der StartInfo -Eigenschaft festgelegt werden. Die einzige StartInfo Eigenschaft, die festgelegt werden muss, ist die FileName -Eigenschaft. Die FileName Eigenschaft muss keine ausführbare Datei sein. Es kann sich um einen beliebigen Dateityp handeln, für den die Erweiterung einer Anwendung zugeordnet wurde, die auf dem System installiert ist. Beispielsweise kann die FileName -Eigenschaft eine .txt-Erweiterung aufweisen, wenn Sie Textdateien mit einem Editor wie Editor verknüpft haben, oder sie kann eine .doc-Erweiterung aufweisen, wenn Sie .doc Dateien einem Textverarbeitungstool wie Microsoft Word zugeordnet haben.
In der Befehlszeile können Sie Aktionen angeben, die für bestimmte Dateitypen ausgeführt werden sollen. Beispielsweise können Sie Dokumente drucken oder Textdateien bearbeiten. Geben Sie diese Aktionen mithilfe des Verb Members der StartInfo -Eigenschaft an. Für andere Dateitypen können Sie Befehlszeilenargumente angeben, wenn Sie die Datei über das Run
Dialogfeld starten. Sie können beispielsweise eine URL als Argument übergeben, wenn Sie Ihren Browser als FileNameangeben. Diese Argumente können im Element der StartInfo Eigenschaft Arguments angegeben werden.
Wenn Sie eine Pfadvariable in Ihrem System mithilfe von Anführungszeichen deklariert haben, müssen Sie diesen Pfad beim Starten eines Prozesses, der an diesem Speicherort gefunden wurde, vollständig qualifizieren. Andernfalls findet das System den Pfad nicht. Wenn c:\mypath
sie sich beispielsweise nicht in Ihrem Pfad befindet und Sie ihn mithilfe von Anführungszeichen hinzufügen: path = %path%;"c:\mypath"
, müssen Sie jeden Prozess vollständig c:\mypath
qualifizieren, wenn Sie ihn starten.
Hinweis
ASP.NET Webseiten- und Serversteuerungscode wird im Kontext des ASP.NET-Workerprozesses auf dem Webserver ausgeführt. Wenn Sie die Start -Methode in einer ASP.NET Webseite oder einem Serversteuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt. Der Prozess beginnt nicht im selben Kontext wie der Clientbrowser und hat keinen Zugriff auf den Benutzerdesktop.
Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren den Verlust von Systemressourcen. Schließen Prozesse, die mithilfe von CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess mit bereits geschlossen wurde die HasExited Eigenschaft.
Hier ist ein Hinweis zu Apartmentzustände in verwalteten Threads erforderlich. Wenn UseShellExecute sich true
die Eigenschaft der Prozesskomponente StartInfo befindet, stellen Sie sicher, dass Sie ein Threadingmodell für Ihre Anwendung festgelegt haben, indem Sie das -Attribut [STAThread]
für die main()
-Methode festlegen. Andernfalls kann sich ein verwalteter Thread in einem unknown
Zustand befinden oder in den MTA
Zustand versetzt werdentrue
.UseShellExecute Einige Methoden erfordern, dass der Wohnungszustand nicht lautet unknown
. Wenn der Zustand nicht explizit festgelegt ist, ist die Anwendung auf eine solche Methode standardmäßig MTA
festgelegt, und nach dem Festlegen kann der Apartmentzustand nicht mehr geändert werden. Bewirkt jedoch, dass eine Ausnahme ausgelöst wird, MTA
wenn die Betriebssystemshell den Thread verwaltet.
Weitere Informationen
Gilt für:
Start(String, IEnumerable<String>)
- Quelle:
- Process.cs
- Quelle:
- Process.cs
- Quelle:
- Process.cs
Hiermit wird eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten gestartet.
public:
static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::Collections::Generic::IEnumerable<System::String ^> ^ arguments);
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As IEnumerable(Of String)) As Process
Parameter
- fileName
- String
Der Name eines Dokuments oder einer Anwendungsdatei, das bzw. die im Prozess ausgeführt werden soll.
- arguments
- IEnumerable<String>
Dies sind die Befehlszeilenargumente, die beim Starten des Prozesses übergeben werden sollen.
Gibt zurück
Ein neuer Process, der der Prozessressource zugeordnet ist, oder null
, wenn keine Prozessressource gestartet wurde.
- Attribute
Hinweise
Jedes Argument wird bei Bedarf automatisch mit Escapezeichen versehen.
Wichtig
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.