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
| Name | Beschreibung |
|---|---|
| Start(String, String, String, SecureString, String) |
Startet eine Prozessressource durch Angeben des Namens einer Anwendung, 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, eines Kennworts 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 durch Angeben des Namens eines Dokuments oder einer Anwendungsdatei und ordnet die Ressource einer neuen Process Komponente zu. |
| Start(ProcessStartInfo) |
Startet die Prozessressource, die durch den Parameter angegeben wird, der Prozessstartinformationen enthält (z. B. den Dateinamen des zu startenden Prozesses), und ordnet die Ressource einer neuen Process Komponente zu. |
| Start() |
Startet (oder verwendet) die Prozessressource, die von der StartInfo Eigenschaft dieser Process Komponente angegeben wird, und ordnet sie der Komponente zu. |
| Start(String, IEnumerable<String>) |
Startet eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten. |
Start(String, String, String, SecureString, String)
- Quelle:
- Process.Unix.cs
- Quelle:
- Process.Unix.cs
- 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, 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 im Prozess ausgeführt werden soll.
- arguments
- String
Befehlszeilenargumente, die beim Starten des Prozesses übergeben werden sollen.
- userName
- String
Der Benutzername, der beim Starten des Prozesses verwendet werden soll.
- password
- SecureString
Ein SecureString Kennwort, das beim Starten des Prozesses verwendet werden soll.
- domain
- String
Die Domäne, die beim Starten des Prozesses verwendet werden soll.
Gibt zurück
Eine neue Process , die der Prozessressource zugeordnet ist oder null wenn keine Prozessressource gestartet wird. Beachten Sie, dass ein neuer Prozess, der zusammen mit bereits ausgeführten Instanzen desselben Prozesses gestartet wird, von den anderen unabhängig ist. Darüber hinaus kann Start einen Nicht-Null-Prozess zurückgeben, dessen HasExited Eigenschaft bereits auf true. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz von sich selbst aktiviert und dann beendet.
- Attribute
Ausnahmen
Es wurde kein Dateiname angegeben.
Fehler beim Öffnen der zugeordneten Datei.
- oder -
Die in der fileName Datei angegebene Datei wurde nicht gefunden.
- oder -
Die Summe der Länge der Argumente und die Länge des vollständigen Pfads zur zugeordneten Datei ü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."
Das Prozessobjekt wurde bereits verworfen.
Dieses Mitglied wird unter Linux oder macOS (nur.NET Core) nicht unterstützt.
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.
Von Bedeutung
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. 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) und nicht mit einem verknüpften Laufwerkbuchstaben 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 Instanz zu erstellen. Die Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process Instanz, zum Festlegen der FileNameEigenschaften , Arguments, UserNamePasswordund DomainStartInfo zum Aufrufen Start der Process Instanz.
Auf ähnliche Weise kann das Dialogfeld " Ausführen " einen dateinamen mit oder ohne die .exe Erweiterung akzeptieren, die .exe Erweiterung ist im fileName Parameter optional. Sie können beispielsweise den fileName Parameter auf "Notepad.exe" oder "Editor" festlegen. Wenn der fileName Parameter eine ausführbare Datei darstellt, kann der arguments Parameter eine Datei darstellen, die ausgeführt werden soll, z. B. die Textdatei in Notepad.exe myfile.txt.
Hinweis
Der Dateiname muss eine ausführbare Datei in den Start Überladungen mit userName, passwordund domain Parametern darstellen.
Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren, dass Systemressourcen verloren gehen. Schließen Sie Prozesse mithilfe CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess bereits mit seiner HasExited Eigenschaft geschlossen wurde.
Gilt für:
Start(String, String, SecureString, String)
- Quelle:
- Process.Unix.cs
- Quelle:
- Process.Unix.cs
- 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, 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 ^ 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 im Prozess ausgeführt werden soll.
- userName
- String
Der Benutzername, der beim Starten des Prozesses verwendet werden soll.
- password
- SecureString
Ein SecureString Kennwort, das beim Starten des Prozesses verwendet werden soll.
- domain
- String
Die Domäne, die beim Starten des Prozesses verwendet werden soll.
Gibt zurück
Eine neue Process , die der Prozessressource zugeordnet ist oder null wenn keine Prozessressource gestartet wird. Beachten Sie, dass ein neuer Prozess, der zusammen mit bereits ausgeführten Instanzen desselben Prozesses gestartet wird, von den anderen unabhängig ist. Darüber hinaus kann Start einen Nicht-Null-Prozess zurückgeben, dessen HasExited Eigenschaft bereits auf true. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz von sich selbst aktiviert und dann beendet.
- Attribute
Ausnahmen
Es wurde kein Dateiname angegeben.
Fehler beim Öffnen der zugeordneten Datei.
- oder -
Die in der fileName Datei angegebene Datei wurde nicht gefunden.
Das Prozessobjekt wurde bereits verworfen.
Dieses Mitglied wird unter Linux oder macOS (nur.NET Core) nicht unterstützt.
Beispiele
Das folgende Codebeispiel zeigt die Verwendung dieser Überladung zum Starten einer ausführbaren Datei und zeigt auch das Auslösen eines Win32Exception Fehlers, wenn versucht wird, eine Anwendung zu starten, die einer nicht ausführbaren 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();
}
}
}
// NOTE: This example requires a text.txt file file in your Documents folder
open System
open System.Diagnostics
open System.Security
open System.ComponentModel
printf "Enter your domain: "
let domain = stdin.ReadLine()
printf "Enter you user name: "
let uname = stdin.ReadLine()
printf "Enter your password: "
let password = new SecureString()
let mutable key = Console.ReadKey(true)
while key.Key <> ConsoleKey.Enter do
// Ignore any key out of range.
if int key.Key >= 33 && int key.Key <= 90 && key.Key <> ConsoleKey.Enter then
// Append the character to the password.
password.AppendChar key.KeyChar
Console.Write "*"
key <- Console.ReadKey(true)
printfn ""
try
printfn "\nTrying to launch NotePad using your login information..."
Process.Start("notepad.exe", uname, password, domain) |> ignore
with :? Win32Exception as ex ->
printfn $"{ex.Message}"
let path = Environment.GetFolderPath Environment.SpecialFolder.MyDocuments + @"\"
try
// The following call to Start succeeds if test.txt exists.
printfn "\nTrying to launch 'text.txt'..."
Process.Start $"{path}text.txt" |> ignore
with :? Win32Exception as ex ->
printfn $"{ex.Message}"
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.
printfn "\nTrying to launch 'text.txt' with your login information..."
Process.Start($"{path}text.txt", uname, password, domain) |> ignore
with :? Win32Exception as ex ->
printfn $"{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.
Von Bedeutung
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. 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) und nicht mit einem verknüpften Laufwerkbuchstaben 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 Instanz zu erstellen. Die Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process Instanz, zum Festlegen der FileNameEigenschaften PasswordUserName, und DomainStartInfo zum Aufrufen Start der Process Instanz.
Auf ähnliche Weise kann das Dialogfeld " Ausführen " einen dateinamen mit oder ohne die .exe Erweiterung akzeptieren, die .exe Erweiterung ist im fileName Parameter optional. Sie können beispielsweise den fileName Parameter auf "Notepad.exe" oder "Editor" festlegen. Wenn der fileName Parameter eine ausführbare Datei darstellt, kann der arguments Parameter eine Datei darstellen, die ausgeführt werden soll, z. B. die Textdatei in Notepad.exe myfile.txt.
Hinweis
Der Dateiname muss eine ausführbare Datei in den Start Überladungen mit userName, passwordund domain Parametern darstellen.
Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren, dass Systemressourcen verloren gehen. Schließen Sie Prozesse mithilfe CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess bereits mit seiner HasExited Eigenschaft geschlossen wurde.
Gilt für:
Start(String, String)
- Quelle:
- Process.cs
- Quelle:
- Process.cs
- 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);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start(string fileName, 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.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * string -> System.Diagnostics.Process
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String) As Process
Parameter
- fileName
- String
Der Name einer Anwendungsdatei, die im Prozess ausgeführt werden soll.
- arguments
- String
Befehlszeilenargumente, die beim Starten des Prozesses übergeben werden sollen.
Gibt zurück
Eine neue Process , die der Prozessressource zugeordnet ist oder null wenn keine Prozessressource gestartet wird. Beachten Sie, dass ein neuer Prozess, der zusammen mit bereits ausgeführten Instanzen desselben Prozesses gestartet wird, von den anderen unabhängig ist. Darüber hinaus kann Start einen Nicht-Null-Prozess zurückgeben, dessen HasExited Eigenschaft bereits auf true. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz von sich selbst aktiviert und dann beendet.
- Attribute
Ausnahmen
Der fileName Parameter ist argumentsnull.
Fehler beim Öffnen der zugeordneten Datei.
- oder -
Die in der fileName Datei angegebene Datei wurde nicht gefunden.
- oder -
Die Summe der Länge der Argumente und die Länge des vollständigen Pfads zum Prozess ü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."
Das Prozessobjekt wurde bereits verworfen.
Die PATH-Umgebungsvariable verfügt über eine Zeichenfolge mit Anführungszeichen.
Beispiele
Im folgenden Beispiel wird zunächst eine Instanz von Internet Explorer geöffnet 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 minimiert wird, während sie zu einer bestimmten Website navigieren.
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();
}
}
}
module processstartstatic
open System
open System.Diagnostics
// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
// Start Internet Explorer. Defaults to the home page.
Process.Start "IExplore.exe" |> ignore
// Display the contents of the favorites folder in the browser.
Process.Start myFavoritesPath |> ignore
// Opens urls and .html documents using Internet Explorer.
let openWithArguments () =
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com") |> ignore
// Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", @"C:\myPath\myFile.htm") |> ignore
Process.Start("IExplore.exe", @"C:\myPath\myFile.asp") |> ignore
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
let startInfo = ProcessStartInfo "IExplore.exe"
startInfo.WindowStyle <- ProcessWindowStyle.Minimized
Process.Start startInfo |> ignore
startInfo.Arguments <- "www.northwindtraders.com"
Process.Start startInfo |> ignore
// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites
openApplication myFavoritesPath
openWithArguments ()
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 deren Dateinamen und Befehlszeilenargumente angeben. Die Überladung ordnet die Ressource einem neuen Process Objekt zu.
Von Bedeutung
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. 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 Instanz zu erstellen. Die Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process Instanz, Zum Festlegen der FileName Elemente und Arguments Member der StartInfo Eigenschaft und zum Aufrufen Start der Process Instanz.
Das Starten eines Prozesses durch Angeben des Dateinamens und der Argumente ähnelt der Eingabe des Dateinamens und der Befehlszeilenargumente im Run Dialogfeld des Windows-Menüs Start . Daher muss der Dateiname keine ausführbare Datei darstellen. Es kann sich um einen beliebigen Dateityp handeln, für den die Erweiterung einer auf dem System installierten Anwendung zugeordnet wurde. Beispielsweise kann der Dateiname eine .txt Erweiterung haben, wenn Sie einem Editor Textdateien zugeordnet haben, z. B. Editor, oder es kann eine .doc haben, wenn Sie .doc Dateien einem Textverarbeitungstool wie Microsoft Word zugeordnet haben. Ebenso ist die .exe-Erweiterung im fileName Parameter optional, wenn das Run Dialogfeld einen Dateinamen mit oder ohne die .exe Erweiterung akzeptieren kann. Sie können beispielsweise den fileName Parameter auf "Notepad.exe" oder "Editor" festlegen. Wenn der fileName Parameter eine ausführbare Datei darstellt, kann der arguments Parameter eine Datei darstellen, die ausgeführt 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 Argument "/c" oder "/k" enthalten, um anzugeben, ob das Befehlsfenster nach Abschluss beendet oder verbleibt.
Im Gegensatz zu den anderen Überladungen ist die Überladung Start ohne Parameter kein static Element. Verwenden Sie diese Überladung, wenn Sie bereits eine Process Instanz und angegebene Startinformationen (einschließlich des Dateinamens) erstellt haben und eine Prozessressource starten und sie der vorhandenen Process Instanz 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 Prozessressource anzugeben, die gestartet werden soll, und Befehlszeilenargumente, die übergeben werden sollen.
Wenn Sie eine Pfadvariable in Ihrem System mithilfe von Anführungszeichen deklariert haben, müssen Sie diesen Pfad vollständig qualifizieren, wenn ein Prozess gestartet wird, der an diesem Speicherort gefunden wurde. Andernfalls wird der Pfad vom System nicht gefunden. Wenn sie sich beispielsweise c:\mypath nicht in Ihrem Pfad befindet und Sie ihn mithilfe von Anführungszeichen hinzufügen: path = %path%;"c:\mypath"Müssen Sie alle Prozesse c:\mypath beim Starten vollständig qualifizieren.
Hinweis
ASP.NET Webseiten- und Serversteuerungscode wird im Kontext des ASP.NET Arbeitsprozesses auf dem Webserver ausgeführt. Wenn Sie die Start Methode in einer ASP.NET Webseite oder einem Serversteuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt. Der Prozess wird nicht im gleichen Kontext wie der Clientbrowser gestartet und hat keinen Zugriff auf den Benutzerdesktop.
Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren, dass Systemressourcen verloren gehen. Schließen Sie Prozesse mithilfe CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess bereits mit seiner HasExited Eigenschaft geschlossen wurde.
Hier ist eine Notiz zu Apartmentzuständen in verwalteten Threads erforderlich.
true Wenn UseShellExecute sich 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, von dem letztere konfliktet.UseShellExecutetrue Einige Methoden erfordern, dass der Wohnungszustand nicht sein muss unknown. Wenn der Zustand nicht explizit festgelegt ist, wird der Apartmentzustand nicht geändert, wenn die Anwendung auf eine solche Methode trifft, standardmäßig MTAauf und nach dem Festlegen. Führt jedoch dazu, 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
- Quelle:
- Process.cs
- Quelle:
- Process.cs
Startet eine Prozessressource durch Angeben des Namens eines Dokuments oder einer Anwendungsdatei und ordnet die Ressource einer neuen Process Komponente zu.
public:
static System::Diagnostics::Process ^ Start(System::String ^ fileName);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start(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.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String) As Process
Parameter
- fileName
- String
Der Name eines Dokuments oder einer Anwendungsdatei, die im Prozess ausgeführt werden soll.
Gibt zurück
Eine neue Process , die der Prozessressource zugeordnet ist oder null wenn keine Prozessressource gestartet wird. Beachten Sie, dass ein neuer Prozess, der zusammen mit bereits ausgeführten Instanzen desselben Prozesses gestartet wird, von den anderen unabhängig ist. Darüber hinaus kann Start einen Nicht-Null-Prozess zurückgeben, dessen HasExited Eigenschaft bereits auf true. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz von sich selbst aktiviert und dann beendet.
- Attribute
Ausnahmen
Fehler beim Öffnen der zugeordneten Datei.
- oder -
Die in der fileName Datei angegebene Datei wurde nicht gefunden.
Das Prozessobjekt wurde bereits verworfen.
Die PATH-Umgebungsvariable verfügt über eine Zeichenfolge mit Anführungszeichen.
Beispiele
Im folgenden Beispiel wird zunächst eine Instanz von Internet Explorer geöffnet 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 minimiert wird, während sie zu einer bestimmten Website navigieren.
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();
}
}
}
module processstartstatic
open System
open System.Diagnostics
// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
// Start Internet Explorer. Defaults to the home page.
Process.Start "IExplore.exe" |> ignore
// Display the contents of the favorites folder in the browser.
Process.Start myFavoritesPath |> ignore
// Opens urls and .html documents using Internet Explorer.
let openWithArguments () =
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com") |> ignore
// Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", @"C:\myPath\myFile.htm") |> ignore
Process.Start("IExplore.exe", @"C:\myPath\myFile.asp") |> ignore
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
let startInfo = ProcessStartInfo "IExplore.exe"
startInfo.WindowStyle <- ProcessWindowStyle.Minimized
Process.Start startInfo |> ignore
startInfo.Arguments <- "www.northwindtraders.com"
Process.Start startInfo |> ignore
// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites
openApplication myFavoritesPath
openWithArguments ()
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 angeben. Die Überladung ordnet die Ressource einem neuen Process Objekt zu.
Von Bedeutung
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. 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 Instanz zu erstellen. Die Überladung ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process Instanz, zum Festlegen des FileName Elements der StartInfo Eigenschaft und zum Aufrufen Start der Process Instanz.
Sie können eine ClickOnce-Anwendung starten, indem Sie den fileName Parameter auf den Speicherort festlegen (z. B. eine Webadresse), von der Sie die Anwendung ursprünglich installiert haben. Starten Sie eine ClickOnce-Anwendung nicht, indem Sie den installierten Speicherort auf Der Festplatte angeben.
Das Starten eines Prozesses durch Angeben des Dateinamens ähnelt der Eingabe der Informationen im Run Dialogfeld des Windows-Menüs Start . Daher muss der Dateiname keine ausführbare Datei darstellen. Es kann sich um einen beliebigen Dateityp handeln, für den die Erweiterung einer auf dem System installierten Anwendung zugeordnet wurde. Beispielsweise kann der Dateiname eine .txt Erweiterung haben, wenn Sie einem Editor Textdateien zugeordnet haben, z. B. Editor, oder es kann eine .doc haben, wenn Sie .doc Dateien einem Textverarbeitungstool wie Microsoft Word zugeordnet haben. Ebenso ist die .exe-Erweiterung im fileName Parameter optional, wenn das Run Dialogfeld einen Dateinamen mit oder ohne die .exe Erweiterung akzeptieren kann. Sie können beispielsweise 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) überladen.
Im Gegensatz zu den anderen Überladungen ist die Überladung Start ohne Parameter kein static Element. Verwenden Sie diese Überladung, wenn Sie bereits eine Process Instanz und angegebene Startinformationen (einschließlich des Dateinamens) erstellt haben und eine Prozessressource starten und sie der vorhandenen Process Instanz 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 vollständig qualifizieren, wenn ein Prozess gestartet wird, der an diesem Speicherort gefunden wurde. Andernfalls wird der Pfad vom System nicht gefunden. Wenn sie sich beispielsweise c:\mypath nicht in Ihrem Pfad befindet und Sie ihn mithilfe von Anführungszeichen hinzufügen: path = %path%;"c:\mypath"Müssen Sie alle Prozesse c:\mypath beim Starten vollständig qualifizieren.
Hinweis
ASP.NET Webseiten- und Serversteuerungscode wird im Kontext des ASP.NET Arbeitsprozesses auf dem Webserver ausgeführt. Wenn Sie die Start Methode in einer ASP.NET Webseite oder einem Serversteuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt. Der Prozess wird nicht im gleichen Kontext wie der Clientbrowser gestartet und hat keinen Zugriff auf den Benutzerdesktop.
Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren, dass Systemressourcen verloren gehen. Schließen Sie Prozesse mithilfe CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess bereits mit seiner HasExited Eigenschaft geschlossen wurde.
Hier ist eine Notiz zu Apartmentzuständen in verwalteten Threads erforderlich.
true Wenn UseShellExecute sich 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, von dem letztere konfliktet.UseShellExecutetrue Einige Methoden erfordern, dass der Wohnungszustand nicht sein muss unknown. Wenn der Zustand nicht explizit festgelegt ist, wird der Apartmentzustand nicht geändert, wenn die Anwendung auf eine solche Methode trifft, standardmäßig MTAauf und nach dem Festlegen. Führt jedoch dazu, 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
- Quelle:
- Process.cs
- Quelle:
- Process.cs
Startet die Prozessressource, die durch den Parameter angegeben wird, der Prozessstartinformationen enthält (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);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process? Start(System.Diagnostics.ProcessStartInfo startInfo);
public static System.Diagnostics.Process? Start(System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process? Start(System.Diagnostics.ProcessStartInfo startInfo);
public static System.Diagnostics.Process Start(System.Diagnostics.ProcessStartInfo startInfo);
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
Public Shared Function Start (startInfo As ProcessStartInfo) As Process
Parameter
- startInfo
- ProcessStartInfo
Die ProcessStartInfo Informationen, die zum Starten des Prozesses verwendet werden, einschließlich des Dateinamens und aller Befehlszeilenargumente.
Gibt zurück
Eine neue Process , die der Prozessressource zugeordnet ist oder null wenn keine Prozessressource gestartet wird. Beachten Sie, dass ein neuer Prozess, der zusammen mit bereits ausgeführten Instanzen desselben Prozesses gestartet wird, von den anderen unabhängig ist. Darüber hinaus kann Start einen Nicht-Null-Prozess zurückgeben, dessen HasExited Eigenschaft bereits auf true. In diesem Fall hat der gestartete Prozess möglicherweise eine vorhandene Instanz von sich selbst aktiviert und dann beendet.
- Attribute
Ausnahmen
In der Eigenschaft des startInfoFileName Parameters wurde kein Dateiname angegeben.
- oder -
Die UseShellExecute Eigenschaft des startInfo Parameters ist true und die RedirectStandardInput, RedirectStandardOutput, oder RedirectStandardError Eigenschaft ist auch 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.
Fehler beim Öffnen der zugeordneten Datei.
- oder -
Die in der Eigenschaft des startInfoFileName Parameters angegebene Datei wurde nicht gefunden.
- oder -
Die Summe der Länge der Argumente und die Länge des vollständigen Pfads zum Prozess ü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."
Die Methode wird auf Betriebssystemen ohne Shellunterstützung wie Nano Server (nur.NET Core) nicht unterstützt.
Beispiele
Im folgenden Beispiel wird zunächst eine Instanz von Internet Explorer geöffnet 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 minimiert wird, während sie zu einer bestimmten Website navigieren.
Weitere Beispiele für andere Verwendungen dieser Methode finden Sie in den einzelnen Eigenschaften der ProcessStartInfo Klasse.
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();
}
}
}
module processstartstatic
open System
open System.Diagnostics
// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
// Start Internet Explorer. Defaults to the home page.
Process.Start "IExplore.exe" |> ignore
// Display the contents of the favorites folder in the browser.
Process.Start myFavoritesPath |> ignore
// Opens urls and .html documents using Internet Explorer.
let openWithArguments () =
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com") |> ignore
// Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", @"C:\myPath\myFile.htm") |> ignore
Process.Start("IExplore.exe", @"C:\myPath\myFile.asp") |> ignore
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
let startInfo = ProcessStartInfo "IExplore.exe"
startInfo.WindowStyle <- ProcessWindowStyle.Minimized
Process.Start startInfo |> ignore
startInfo.Arguments <- "www.northwindtraders.com"
Process.Start startInfo |> ignore
// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites
openApplication myFavoritesPath
openWithArguments ()
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 Instanz angeben. Die Überladung ordnet die Ressource einem neuen Process Objekt zu.
Von Bedeutung
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. 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 Instanz zu erstellen. Die Verwendung dieser Überladung mit einem ProcessStartInfo Parameter ist eine Alternative zu den expliziten Schritten zum Erstellen einer neuen Process Instanz, zum Festlegen der StartInfo Eigenschaften und zum Aufrufen Start der Process Instanz.
Wenn Sie eine ProcessStartInfo Instanz als Parameter verwenden, können Sie mit dem meisten Kontrolle darüber aufrufen Start , 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 Instanz 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. Beispielsweise kann die FileName Eigenschaft eine .txt Erweiterung haben, wenn Sie einem Editor Textdateien zugeordnet haben, z. B. Editor, oder eine .doc Erweiterung haben, wenn Sie .doc Dateien mit einem Textverarbeitungstool wie Microsoft Word verknüpft haben.
Sie können eine ClickOnce-Anwendung starten, indem Sie den Speicherort (z. B. eine Webadresse) angeben, von dem Sie die Anwendung ursprünglich installiert haben. Starten Sie eine ClickOnce-Anwendung nicht, indem Sie den installierten Speicherort auf Der Festplatte angeben.
Wenn die ProcessStartInfo.UserName Eigenschaften ProcessStartInfo.Password und Eigenschaften der StartInfo Instanz festgelegt werden, wird die nicht verwaltete CreateProcessWithLogonW Funktion aufgerufen, die den Prozess in einem neuen Fenster startet, auch wenn der ProcessStartInfo.CreateNoWindow Eigenschaftswert oder true der ProcessStartInfo.WindowStyle Eigenschaftswert ist ProcessWindowStyle.Hidden. Wenn die ProcessStartInfo.Domain Eigenschaft lautetnull, muss die ProcessStartInfo.UserName Eigenschaft im UPN-Format vorliegen,DNS_domain_nameder Benutzer@.
Im Gegensatz zu den anderen Überladungen ist die Überladung Start ohne Parameter kein static Element. Verwenden Sie diese Überladung, wenn Sie bereits eine Process Instanz und angegebene Startinformationen (einschließlich des Dateinamens) erstellt haben und eine Prozessressource starten und sie der vorhandenen Process Instanz 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 einer ProcessStartInfo Instanz anzugeben.
Wenn Sie eine Pfadvariable in Ihrem System mithilfe von Anführungszeichen deklariert haben, müssen Sie diesen Pfad vollständig qualifizieren, wenn ein Prozess gestartet wird, der an diesem Speicherort gefunden wurde. Andernfalls wird der Pfad vom System nicht gefunden. Wenn sie sich beispielsweise c:\mypath nicht in Ihrem Pfad befindet und Sie ihn mithilfe von Anführungszeichen hinzufügen: path = %path%;"c:\mypath"Müssen Sie alle Prozesse c:\mypath beim Starten vollständig qualifizieren.
Hinweis
ASP.NET Webseiten- und Serversteuerungscode wird im Kontext des ASP.NET Arbeitsprozesses auf dem Webserver ausgeführt. Wenn Sie die Start Methode in einer ASP.NET Webseite oder einem Serversteuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt. Der Prozess wird nicht im gleichen Kontext wie der Clientbrowser gestartet und hat keinen Zugriff auf den Benutzerdesktop.
Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren, dass Systemressourcen verloren gehen. Schließen Sie Prozesse mithilfe CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess bereits mit seiner HasExited Eigenschaft geschlossen wurde.
Hier ist eine Notiz zu Apartmentzuständen in verwalteten Threads erforderlich.
true Wenn UseShellExecute sich der 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, von dem letztere konfliktet.UseShellExecutetrue Einige Methoden erfordern, dass der Wohnungszustand nicht sein muss unknown. Wenn der Zustand nicht explizit festgelegt ist, wird der Apartmentzustand nicht geändert, wenn die Anwendung auf eine solche Methode trifft, standardmäßig MTAauf und nach dem Festlegen. Führt jedoch dazu, 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
- Quelle:
- Process.cs
- Quelle:
- Process.cs
public:
bool Start();
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public bool Start();
public bool Start();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public bool Start();
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Start : unit -> bool
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Start : unit -> bool
Public Function Start () As Boolean
Gibt zurück
true wenn eine Prozessressource gestartet wird; false wenn keine neue Prozessressource gestartet wird (z. B. wenn ein vorhandener Prozess wiederverwendet wird).
- Attribute
Ausnahmen
In der Process Komponente StartInfowurde kein Dateiname angegeben.
- oder -
Das UseShellExecute Element der StartInfo Eigenschaft ist true while RedirectStandardInput, RedirectStandardOutput, oder RedirectStandardError ist .true
Fehler beim Öffnen der zugeordneten Datei.
Das Prozessobjekt wurde bereits verworfen.
Die Methode wird auf Betriebssystemen ohne Shellunterstützung wie Nano Server (nur.NET Core) nicht unterstützt.
Beispiele
Im folgenden Beispiel wird eine Instanz der Process Klasse verwendet, um einen Prozess zu starten.
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);
}
}
}
}
open System.Diagnostics
try
use 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() |> ignore
// 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.
with e ->
printfn $"{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 FileName Element der StartInfo 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 Sie die Anwendung ursprünglich installiert haben. Starten Sie eine ClickOnce-Anwendung nicht, indem Sie den installierten Speicherort auf Der Festplatte angeben.
Von Bedeutung
Die Verwendung einer Instanz dieses Typs mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. 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 auf 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 im Verfahren des Formulars InitializeComponent angezeigt.
Diese Überladung ist Start keine static Methode. Sie müssen sie aus einer Instanz der Process Klasse aufrufen. Vor dem Aufrufen Startmüssen Sie zunächst Eigenschafteninformationen für diese Process Instanz 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 Instanz der Process Komponente erstellen, bevor Sie diese Überladungen der Methode aufrufen. Stattdessen können Sie die Process Klasse selbst aufrufen Start 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 Member 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 haben, wenn Sie einem Editor Textdateien zugeordnet haben, z. B. Editor, oder eine .doc Erweiterung haben, wenn Sie .doc Dateien mit einem Textverarbeitungstool wie Microsoft Word verknüpft haben.
In der Befehlszeile können Sie Aktionen angeben, die für bestimmte Dateitypen ausgeführt werden sollen. Sie können z. B. Dokumente drucken oder Textdateien bearbeiten. Geben Sie diese Aktionen mithilfe des Verb Elements der StartInfo Eigenschaft an. Bei anderen Dateitypen können Sie Befehlszeilenargumente angeben, wenn Sie die Datei über das Run Dialogfeld starten. Sie können z. B. eine URL als Argument übergeben, wenn Sie Ihren Browser als argumentieren FileName. 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 vollständig qualifizieren, wenn ein Prozess gestartet wird, der an diesem Speicherort gefunden wurde. Andernfalls wird der Pfad vom System nicht gefunden. Wenn sie sich beispielsweise c:\mypath nicht in Ihrem Pfad befindet und Sie ihn mithilfe von Anführungszeichen hinzufügen: path = %path%;"c:\mypath"Müssen Sie alle Prozesse c:\mypath beim Starten vollständig qualifizieren.
Hinweis
ASP.NET Webseiten- und Serversteuerungscode wird im Kontext des ASP.NET Arbeitsprozesses auf dem Webserver ausgeführt. Wenn Sie die Start Methode in einer ASP.NET Webseite oder einem Serversteuerelement verwenden, wird der neue Prozess auf dem Webserver mit eingeschränkten Berechtigungen ausgeführt. Der Prozess wird nicht im gleichen Kontext wie der Clientbrowser gestartet und hat keinen Zugriff auf den Benutzerdesktop.
Wann immer Sie Start einen Prozess starten, müssen Sie ihn möglicherweise schließen, oder Sie riskieren, dass Systemressourcen verloren gehen. Schließen Sie Prozesse mithilfe CloseMainWindow oder Kill. Sie können überprüfen, ob ein Prozess bereits mit seiner HasExited Eigenschaft geschlossen wurde.
Hier ist eine Notiz zu Apartmentzuständen in verwalteten Threads erforderlich.
true Wenn UseShellExecute sich 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, von dem letztere konfliktet.UseShellExecutetrue Einige Methoden erfordern, dass der Wohnungszustand nicht sein muss unknown. Wenn der Zustand nicht explizit festgelegt ist, wird der Apartmentzustand nicht geändert, wenn die Anwendung auf eine solche Methode trifft, standardmäßig MTAauf und nach dem Festlegen. Führt jedoch dazu, 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
- Quelle:
- Process.cs
- Quelle:
- Process.cs
Startet eine Prozessressource durch Angeben des Namens einer Anwendung und einer Reihe von Befehlszeilenargumenten.
public:
static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::Collections::Generic::IEnumerable<System::String ^> ^ arguments);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start(string fileName, System.Collections.Generic.IEnumerable<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.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As IEnumerable(Of String)) As Process
Parameter
- fileName
- String
Der Name eines Dokuments oder einer Anwendungsdatei, die im Prozess ausgeführt werden soll.
- arguments
- IEnumerable<String>
Die Befehlszeilenargumente, die beim Starten des Prozesses übergeben werden sollen.
Gibt zurück
Eine neue Process , die der Prozessressource zugeordnet ist oder null wenn keine Prozessressource gestartet wird.
- Attribute
Hinweise
Jedes Argument wird bei Bedarf automatisch escapet.
Von Bedeutung
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.