Process.Start Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Démarre une ressource de processus et l’associe à un Process composant.
Surcharges
| Nom | Description |
|---|---|
| Start(String, String, String, SecureString, String) |
Démarre une ressource de processus en spécifiant le nom d’une application, un ensemble d’arguments de ligne de commande, un nom d’utilisateur, un mot de passe et un domaine et associe la ressource à un nouveau Process composant. |
| Start(String, String, SecureString, String) |
Démarre une ressource de processus en spécifiant le nom d’une application, un nom d’utilisateur, un mot de passe et un domaine et associe la ressource à un nouveau Process composant. |
| Start(String, String) |
Démarre une ressource de processus en spécifiant le nom d’une application et un ensemble d’arguments de ligne de commande et en associant la ressource à un nouveau Process composant. |
| Start(String) |
Démarre une ressource de processus en spécifiant le nom d’un fichier de document ou d’application et en associant la ressource à un nouveau Process composant. |
| Start(ProcessStartInfo) |
Démarre la ressource de processus spécifiée par le paramètre contenant les informations de démarrage du processus (par exemple, le nom de fichier du processus à démarrer) et associe la ressource à un nouveau Process composant. |
| Start() |
Démarre (ou réutilise) la ressource de processus spécifiée par la StartInfo propriété de ce Process composant et l’associe au composant. |
| Start(String, IEnumerable<String>) |
Démarre une ressource de processus en spécifiant le nom d’une application et un ensemble d’arguments de ligne de commande. |
Start(String, String, String, SecureString, String)
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
Important
Cette API n’est pas conforme CLS.
Démarre une ressource de processus en spécifiant le nom d’une application, un ensemble d’arguments de ligne de commande, un nom d’utilisateur, un mot de passe et un domaine et associe la ressource à un nouveau Process composant.
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
Paramètres
- fileName
- String
Nom d’un fichier d’application à exécuter dans le processus.
- arguments
- String
Arguments de ligne de commande à passer lors du démarrage du processus.
- userName
- String
Nom d’utilisateur à utiliser lors du démarrage du processus.
- password
- SecureString
Qui SecureString contient le mot de passe à utiliser lors du démarrage du processus.
- domain
- String
Domaine à utiliser lors du démarrage du processus.
Retours
Nouveau Process associé à la ressource de processus ou null si aucune ressource de processus n’est démarrée. Notez qu’un nouveau processus démarré avec des instances déjà en cours d’exécution du même processus sera indépendant des autres. En outre, Start peut retourner un processus non null avec sa HasExited propriété déjà définie truesur . Dans ce cas, le processus démarré peut avoir activé une instance existante de lui-même, puis s’est arrêté.
- Attributs
Exceptions
Aucun nom de fichier n’a été spécifié.
Une erreur s’est produite lors de l’ouverture du fichier associé.
- ou -
Impossible de trouver le fichier spécifié dans le fileName fichier.
- ou -
La somme de la longueur des arguments et de la longueur du chemin d’accès complet au fichier associé dépasse 2080. Le message d’erreur associé à cette exception peut être l’un des éléments suivants : « La zone de données transmise à un appel système est trop petite ». Ou « L’accès est refusé ».
L’objet de processus a déjà été supprimé.
Ce membre n’est pas pris en charge sur Linux ou macOS (.NET Core uniquement).
Remarques
Utilisez cette surcharge pour créer un processus et son thread principal en spécifiant son nom de fichier, ses arguments de ligne de commande, son nom d’utilisateur, son mot de passe et son domaine. Le nouveau processus exécute ensuite le fichier exécutable spécifié dans le contexte de sécurité des informations d’identification spécifiées (utilisateur, domaine et mot de passe).
Important
L’appel de cette méthode avec des données non approuvées est un risque de sécurité. Appelez cette méthode uniquement avec des données approuvées. Pour plus d’informations, consultez Valider toutes les entrées.
Note
Lorsque le fichier exécutable se trouve sur un lecteur distant, vous devez identifier le partage réseau à l’aide d’un URI (Uniform Resource Identifier), et non d’une lettre de lecteur lié.
Note
Si l’adresse du fichier exécutable à démarrer est une URL, le processus n’est pas démarré et null est retourné.
Cette surcharge vous permet de démarrer un processus sans créer d’abord une nouvelle Process instance. La surcharge est une alternative aux étapes explicites de création d’une nouvelle Process instance, à la définition des ArgumentsFileNamepropriétés , , PasswordUserNameet Domain aux propriétés de la StartInfo propriété et à l’appel Start de l’instanceProcess.
De même, de la même façon que la boîte de dialogue Exécuter peut accepter un nom de fichier exécutable avec ou sans l’extension .exe, l’extension .exe est facultative dans le fileName paramètre. Par exemple, vous pouvez définir le fileName paramètre sur «Notepad.exe» ou « Bloc-notes ». Si le fileName paramètre représente un fichier exécutable, le arguments paramètre peut représenter un fichier sur lequel agir, tel que le fichier texte dans Notepad.exe myfile.txt.
Note
Le nom de fichier doit représenter un fichier exécutable dans les Start surcharges qui ont userName, passwordet domain les paramètres.
Chaque fois que vous utilisez Start pour démarrer un processus, vous devrez peut-être le fermer ou vous risquez de perdre des ressources système. Fermez les processus à l’aide CloseMainWindow ou Kill. Vous pouvez vérifier si un processus a déjà été fermé à l’aide de sa HasExited propriété.
S’applique à
Start(String, String, SecureString, String)
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
Important
Cette API n’est pas conforme CLS.
Démarre une ressource de processus en spécifiant le nom d’une application, un nom d’utilisateur, un mot de passe et un domaine et associe la ressource à un nouveau Process composant.
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
Paramètres
- fileName
- String
Nom d’un fichier d’application à exécuter dans le processus.
- userName
- String
Nom d’utilisateur à utiliser lors du démarrage du processus.
- password
- SecureString
Qui SecureString contient le mot de passe à utiliser lors du démarrage du processus.
- domain
- String
Domaine à utiliser lors du démarrage du processus.
Retours
Nouveau Process associé à la ressource de processus ou null si aucune ressource de processus n’est démarrée. Notez qu’un nouveau processus démarré avec des instances déjà en cours d’exécution du même processus sera indépendant des autres. En outre, Start peut retourner un processus non null avec sa HasExited propriété déjà définie truesur . Dans ce cas, le processus démarré peut avoir activé une instance existante de lui-même, puis s’est arrêté.
- Attributs
Exceptions
Aucun nom de fichier n’a été spécifié.
Une erreur s’est produite lors de l’ouverture du fichier associé.
- ou -
Impossible de trouver le fichier spécifié dans le fileName fichier.
L’objet de processus a déjà été supprimé.
Ce membre n’est pas pris en charge sur Linux ou macOS (.NET Core uniquement).
Exemples
L’exemple de code suivant montre l’utilisation de cette surcharge pour démarrer un fichier exécutable et montre également le lancement d’une Win32Exception tentative de démarrage d’une application associée à un fichier non exécutable.
// 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
Remarques
Utilisez cette surcharge pour créer un processus et son thread principal en spécifiant son nom de fichier, son nom d’utilisateur, son mot de passe et son domaine. Le nouveau processus exécute ensuite le fichier exécutable spécifié dans le contexte de sécurité des informations d’identification spécifiées (utilisateur, domaine et mot de passe).
Important
L’appel de cette méthode avec des données non approuvées est un risque de sécurité. Appelez cette méthode uniquement avec des données approuvées. Pour plus d’informations, consultez Valider toutes les entrées.
Note
Lorsque le fichier exécutable se trouve sur un lecteur distant, vous devez identifier le partage réseau à l’aide d’un URI (Uniform Resource Identifier), et non d’une lettre de lecteur lié.
Note
Si l’adresse du fichier exécutable à démarrer est une URL, le processus n’est pas démarré et null est retourné.
Cette surcharge vous permet de démarrer un processus sans créer d’abord une nouvelle Process instance. La surcharge est une alternative aux étapes explicites de la création d’une nouvelle Process instance, de la définition des FileNameUserNamepropriétés , Passwordet Domain des propriétés de la StartInfo propriété et de l’appel Start de l’instanceProcess.
De même, de la même façon que la boîte de dialogue Exécuter peut accepter un nom de fichier exécutable avec ou sans l’extension .exe, l’extension .exe est facultative dans le fileName paramètre. Par exemple, vous pouvez définir le fileName paramètre sur «Notepad.exe» ou « Bloc-notes ». Si le fileName paramètre représente un fichier exécutable, le arguments paramètre peut représenter un fichier sur lequel agir, tel que le fichier texte dans Notepad.exe myfile.txt.
Note
Le nom de fichier doit représenter un fichier exécutable dans les Start surcharges qui ont userName, passwordet domain les paramètres.
Chaque fois que vous utilisez Start pour démarrer un processus, vous devrez peut-être le fermer ou vous risquez de perdre des ressources système. Fermez les processus à l’aide CloseMainWindow ou Kill. Vous pouvez vérifier si un processus a déjà été fermé à l’aide de sa HasExited propriété.
S’applique à
Start(String, String)
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
Démarre une ressource de processus en spécifiant le nom d’une application et un ensemble d’arguments de ligne de commande et en associant la ressource à un nouveau Process composant.
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
Paramètres
- fileName
- String
Nom d’un fichier d’application à exécuter dans le processus.
- arguments
- String
Arguments de ligne de commande à passer lors du démarrage du processus.
Retours
Nouveau Process associé à la ressource de processus ou null si aucune ressource de processus n’est démarrée. Notez qu’un nouveau processus démarré avec des instances déjà en cours d’exécution du même processus sera indépendant des autres. En outre, Start peut retourner un processus non null avec sa HasExited propriété déjà définie truesur . Dans ce cas, le processus démarré peut avoir activé une instance existante de lui-même, puis s’est arrêté.
- Attributs
Exceptions
Le ou arguments le fileName paramètre est null.
Une erreur s’est produite lors de l’ouverture du fichier associé.
- ou -
Impossible de trouver le fichier spécifié dans le fileName fichier.
- ou -
La somme de la longueur des arguments et de la longueur du chemin d’accès complet au processus dépasse 2080. Le message d’erreur associé à cette exception peut être l’un des éléments suivants : « La zone de données transmise à un appel système est trop petite ». Ou « L’accès est refusé ».
L’objet de processus a déjà été supprimé.
La variable d’environnement PATH a une chaîne contenant des guillemets.
Exemples
L’exemple suivant génère d’abord une instance d’Internet Explorer et affiche le contenu du dossier Favoris dans le navigateur. Il démarre ensuite d’autres instances d’Internet Explorer et affiche certaines pages ou sites spécifiques. Enfin, il démarre Internet Explorer avec la fenêtre en cours de réduction lors de la navigation vers un site spécifique.
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
Remarques
Utilisez cette surcharge pour démarrer une ressource de processus en spécifiant son nom de fichier et ses arguments de ligne de commande. La surcharge associe la ressource à un nouvel Process objet.
Important
L’appel de cette méthode avec des données non approuvées est un risque de sécurité. Appelez cette méthode uniquement avec des données approuvées. Pour plus d’informations, consultez Valider toutes les entrées.
Note
Si l’adresse du fichier exécutable à démarrer est une URL, le processus n’est pas démarré et null est retourné.
Cette surcharge vous permet de démarrer un processus sans créer d’abord une nouvelle Process instance. La surcharge est une alternative aux étapes explicites de la création d’une nouvelle Process instance, de la FileName définition des membres et Arguments des membres de la StartInfo propriété et de l’appel Start de l’instance Process .
Le démarrage d’un processus en spécifiant son nom de fichier et ses arguments est similaire à la saisie du nom de fichier et des arguments de ligne de commande dans la Run boîte de dialogue du menu Windows Start . Par conséquent, le nom de fichier n’a pas besoin de représenter un fichier exécutable. Il peut s’agir de n’importe quel type de fichier pour lequel l’extension a été associée à une application installée sur le système. Par exemple, le nom de fichier peut avoir une extension de .txt si vous avez associé des fichiers texte avec un éditeur, tel que le Bloc-notes, ou il peut avoir un .doc si vous avez associé des fichiers .doc avec un outil de traitement de texte, tel que Microsoft Word. De même, de la même façon que la Run boîte de dialogue peut accepter un nom de fichier exécutable avec ou sans l’extension .exe, l’extension .exe est facultative dans le fileName paramètre. Par exemple, vous pouvez définir le fileName paramètre sur «Notepad.exe» ou « Bloc-notes ». Si le fileName paramètre représente un fichier exécutable, le arguments paramètre peut représenter un fichier sur lequel agir, tel que le fichier texte dans Notepad.exe myfile.txt. Si le fileName paramètre représente un fichier de commande (.cmd), le arguments paramètre doit inclure un argument «/c » ou «/k » pour spécifier si la fenêtre de commande quitte ou reste après l’achèvement.
Contrairement aux autres surcharges, la surcharge de Start ce paramètre n’est pas membre static . Utilisez cette surcharge lorsque vous avez déjà créé une Process instance et spécifié des informations de démarrage (y compris le nom de fichier), et que vous souhaitez démarrer une ressource de processus et l’associer à l’instance existante Process . Utilisez l’une des static surcharges lorsque vous souhaitez créer un Process composant au lieu de démarrer un processus pour un composant existant. Cette surcharge et la surcharge qui n’a aucun paramètre vous permettent de spécifier le nom de fichier de la ressource de processus à démarrer et les arguments de ligne de commande à passer.
Si vous disposez d’une variable de chemin d’accès déclarée dans votre système à l’aide de guillemets, vous devez qualifier pleinement ce chemin lors du démarrage d’un processus trouvé à cet emplacement. Sinon, le système ne trouve pas le chemin d’accès. Par exemple, si c:\mypath ce n’est pas dans votre chemin d’accès et que vous l’ajoutez à l’aide de guillemets : path = %path%;"c:\mypath", vous devez qualifier pleinement tout processus c:\mypath au démarrage de celui-ci.
Note
ASP.NET code de contrôle de serveur et de page web s’exécute dans le contexte du processus de travail ASP.NET sur le serveur Web. Si vous utilisez la Start méthode dans une page web ou un contrôle serveur ASP.NET, le nouveau processus s’exécute sur le serveur Web avec des autorisations restreintes. Le processus ne démarre pas dans le même contexte que le navigateur client et n’a pas accès au bureau utilisateur.
Chaque fois que vous utilisez Start pour démarrer un processus, vous devrez peut-être le fermer ou vous risquez de perdre des ressources système. Fermez les processus à l’aide CloseMainWindow ou Kill. Vous pouvez vérifier si un processus a déjà été fermé à l’aide de sa HasExited propriété.
Une remarque sur les états d’appartement dans les threads managés est nécessaire ici. Quand UseShellExecute elle se trouve true sur la propriété du composant de StartInfo processus, vérifiez que vous avez défini un modèle de thread sur votre application en définissant l’attribut [STAThread] sur la main() méthode. Dans le cas contraire, un thread managé peut se trouver dans un unknown état ou être placé dans l’état, dont celui-ci MTA est en conflit avec UseShellExecute l’être true. Certaines méthodes nécessitent que l’état de l’appartement ne soit unknownpas . Si l’état n’est pas défini explicitement, lorsque l’application rencontre une telle méthode, elle a la valeur par défaut MTA, et une fois définie, l’état de l’appartement ne peut pas être modifié. Toutefois, MTA une exception est levée lorsque l’interpréteur de commandes du système d’exploitation gère le thread.
Voir aussi
S’applique à
Start(String)
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
Démarre une ressource de processus en spécifiant le nom d’un fichier de document ou d’application et en associant la ressource à un nouveau Process composant.
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
Paramètres
- fileName
- String
Nom d’un document ou d’un fichier d’application à exécuter dans le processus.
Retours
Nouveau Process associé à la ressource de processus ou null si aucune ressource de processus n’est démarrée. Notez qu’un nouveau processus démarré avec des instances déjà en cours d’exécution du même processus sera indépendant des autres. En outre, Start peut retourner un processus non null avec sa HasExited propriété déjà définie truesur . Dans ce cas, le processus démarré peut avoir activé une instance existante de lui-même, puis s’est arrêté.
- Attributs
Exceptions
Une erreur s’est produite lors de l’ouverture du fichier associé.
- ou -
Impossible de trouver le fichier spécifié dans le fileName fichier.
L’objet de processus a déjà été supprimé.
La variable d’environnement PATH a une chaîne contenant des guillemets.
Exemples
L’exemple suivant génère d’abord une instance d’Internet Explorer et affiche le contenu du dossier Favoris dans le navigateur. Il démarre ensuite d’autres instances d’Internet Explorer et affiche certaines pages ou sites spécifiques. Enfin, il démarre Internet Explorer avec la fenêtre en cours de réduction lors de la navigation vers un site spécifique.
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
Remarques
Utilisez cette surcharge pour démarrer une ressource de processus en spécifiant son nom de fichier. La surcharge associe la ressource à un nouvel Process objet.
Important
L’appel de cette méthode avec des données non approuvées est un risque de sécurité. Appelez cette méthode uniquement avec des données approuvées. Pour plus d’informations, consultez Valider toutes les entrées.
Note
Si l’adresse du fichier exécutable à démarrer est une URL, le processus n’est pas démarré et null est retourné.
Cette surcharge vous permet de démarrer un processus sans créer d’abord une nouvelle Process instance. La surcharge est une alternative aux étapes explicites de création d’une nouvelle Process instance, à la définition du FileName membre de la StartInfo propriété et à l’appel Start de l’instance Process .
Vous pouvez démarrer une application ClickOnce en définissant le fileName paramètre sur l’emplacement (par exemple, une adresse web) à partir duquel vous avez installé l’application à l’origine. Ne démarrez pas une application ClickOnce en spécifiant son emplacement installé sur votre disque dur.
Le démarrage d’un processus en spécifiant son nom de fichier est similaire à la saisie des informations dans la Run boîte de dialogue du menu Windows Start . Par conséquent, le nom de fichier n’a pas besoin de représenter un fichier exécutable. Il peut s’agir de n’importe quel type de fichier pour lequel l’extension a été associée à une application installée sur le système. Par exemple, le nom de fichier peut avoir une extension de .txt si vous avez associé des fichiers texte avec un éditeur, tel que le Bloc-notes, ou il peut avoir un .doc si vous avez associé des fichiers .doc avec un outil de traitement de texte, tel que Microsoft Word. De même, de la même façon que la Run boîte de dialogue peut accepter un nom de fichier exécutable avec ou sans l’extension .exe, l’extension .exe est facultative dans le fileName paramètre. Par exemple, vous pouvez définir le fileName paramètre sur «Notepad.exe» ou « Bloc-notes ».
Cette surcharge n’autorise pas les arguments de ligne de commande pour le processus. Si vous devez spécifier un ou plusieurs arguments de ligne de commande pour le processus, utilisez les surcharges ou Process.Start(String, String) les Process.Start(ProcessStartInfo) surcharges.
Contrairement aux autres surcharges, la surcharge de Start ce paramètre n’est pas membre static . Utilisez cette surcharge lorsque vous avez déjà créé une Process instance et spécifié des informations de démarrage (y compris le nom de fichier), et que vous souhaitez démarrer une ressource de processus et l’associer à l’instance existante Process . Utilisez l’une des static surcharges lorsque vous souhaitez créer un Process composant au lieu de démarrer un processus pour un composant existant. Cette surcharge et la surcharge qui n’a aucun paramètre vous permettent de spécifier le nom de fichier de la ressource de processus à démarrer.
Si vous disposez d’une variable de chemin d’accès déclarée dans votre système à l’aide de guillemets, vous devez qualifier pleinement ce chemin lors du démarrage d’un processus trouvé à cet emplacement. Sinon, le système ne trouve pas le chemin d’accès. Par exemple, si c:\mypath ce n’est pas dans votre chemin d’accès et que vous l’ajoutez à l’aide de guillemets : path = %path%;"c:\mypath", vous devez qualifier pleinement tout processus c:\mypath au démarrage de celui-ci.
Note
ASP.NET code de contrôle de serveur et de page web s’exécute dans le contexte du processus de travail ASP.NET sur le serveur Web. Si vous utilisez la Start méthode dans une page web ou un contrôle serveur ASP.NET, le nouveau processus s’exécute sur le serveur Web avec des autorisations restreintes. Le processus ne démarre pas dans le même contexte que le navigateur client et n’a pas accès au bureau utilisateur.
Chaque fois que vous utilisez Start pour démarrer un processus, vous devrez peut-être le fermer ou vous risquez de perdre des ressources système. Fermez les processus à l’aide CloseMainWindow ou Kill. Vous pouvez vérifier si un processus a déjà été fermé à l’aide de sa HasExited propriété.
Une remarque sur les états d’appartement dans les threads managés est nécessaire ici. Quand UseShellExecute elle se trouve true sur la propriété du composant de StartInfo processus, vérifiez que vous avez défini un modèle de thread sur votre application en définissant l’attribut [STAThread] sur la main() méthode. Dans le cas contraire, un thread managé peut se trouver dans un unknown état ou être placé dans l’état, dont celui-ci MTA est en conflit avec UseShellExecute l’être true. Certaines méthodes nécessitent que l’état de l’appartement ne soit unknownpas . Si l’état n’est pas défini explicitement, lorsque l’application rencontre une telle méthode, elle a la valeur par défaut MTA, et une fois définie, l’état de l’appartement ne peut pas être modifié. Toutefois, MTA une exception est levée lorsque l’interpréteur de commandes du système d’exploitation gère le thread.
Voir aussi
S’applique à
Start(ProcessStartInfo)
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
Démarre la ressource de processus spécifiée par le paramètre contenant les informations de démarrage du processus (par exemple, le nom de fichier du processus à démarrer) et associe la ressource à un nouveau Process composant.
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
Paramètres
- startInfo
- ProcessStartInfo
Qui ProcessStartInfo contient les informations utilisées pour démarrer le processus, y compris le nom de fichier et les arguments de ligne de commande.
Retours
Nouveau Process associé à la ressource de processus ou null si aucune ressource de processus n’est démarrée. Notez qu’un nouveau processus démarré avec des instances déjà en cours d’exécution du même processus sera indépendant des autres. En outre, Start peut retourner un processus non null avec sa HasExited propriété déjà définie truesur . Dans ce cas, le processus démarré peut avoir activé une instance existante de lui-même, puis s’est arrêté.
- Attributs
Exceptions
Aucun nom de fichier n’a été spécifié dans la startInfo propriété du FileName paramètre.
- ou -
La UseShellExecute propriété du startInfo paramètre est true et la RedirectStandardInputpropriété , RedirectStandardOutputou RedirectStandardError la propriété est également true.
- ou -
La UseShellExecute propriété du startInfo paramètre est true et la UserName propriété n’est pas null ou vide ou la Password propriété n’est pas null.
Le startInfo paramètre est null.
L’objet de processus a déjà été supprimé.
Une erreur s’est produite lors de l’ouverture du fichier associé.
- ou -
Impossible de trouver le fichier spécifié dans la startInfo propriété du FileName paramètre.
- ou -
La somme de la longueur des arguments et de la longueur du chemin d’accès complet au processus dépasse 2080. Le message d’erreur associé à cette exception peut être l’un des éléments suivants : « La zone de données transmise à un appel système est trop petite ». Ou « L’accès est refusé ».
Méthode non prise en charge sur les systèmes d’exploitation sans prise en charge de l’interpréteur de commandes comme Nano Server (.NET Core uniquement).
Exemples
L’exemple suivant génère d’abord une instance d’Internet Explorer et affiche le contenu du dossier Favoris dans le navigateur. Il démarre ensuite d’autres instances d’Internet Explorer et affiche certaines pages ou sites spécifiques. Enfin, il démarre Internet Explorer avec la fenêtre en cours de réduction lors de la navigation vers un site spécifique.
Pour obtenir des exemples supplémentaires d’autres utilisations de cette méthode, reportez-vous aux propriétés individuelles de la ProcessStartInfo classe.
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
Remarques
Utilisez cette surcharge pour démarrer une ressource de processus en spécifiant une ProcessStartInfo instance. La surcharge associe la ressource à un nouvel Process objet.
Important
L’appel de cette méthode avec des données non approuvées est un risque de sécurité. Appelez cette méthode uniquement avec des données approuvées. Pour plus d’informations, consultez Valider toutes les entrées.
Note
Si l’adresse du fichier exécutable à démarrer est une URL, le processus n’est pas démarré et null est retourné.
Cette surcharge vous permet de démarrer un processus sans créer d’abord une nouvelle Process instance. L’utilisation de cette surcharge avec un ProcessStartInfo paramètre est une alternative aux étapes explicites de création d’une nouvelle Process instance, la définition de ses StartInfo propriétés et l’appel Start de l’instance Process .
L’utilisation d’une instance comme paramètre vous permet d’appeler ProcessStartInfoStart avec le plus de contrôle sur ce qui est passé dans l’appel pour démarrer le processus. Si vous devez transmettre uniquement un nom de fichier ou un nom de fichier et des arguments, il n’est pas nécessaire de créer une nouvelle ProcessStartInfo instance, bien qu’il s’agit d’une option. La seule Process.StartInfo propriété qui doit être définie est la FileName propriété. La FileName propriété n’a pas besoin de représenter un fichier exécutable. Il peut s’agir de n’importe quel type de fichier pour lequel l’extension a été associée à une application installée sur le système. Par exemple, la FileName propriété peut avoir une extension .txt si vous avez associé des fichiers texte avec un éditeur, tel que le Bloc-notes, ou il peut avoir une extension .doc si vous avez associé des fichiers .doc avec un outil de traitement de texte, tel que Microsoft Word.
Vous pouvez démarrer une application ClickOnce en spécifiant l’emplacement (par exemple, une adresse web) à partir duquel vous avez installé l’application à l’origine. Ne démarrez pas une application ClickOnce en spécifiant son emplacement installé sur votre disque dur.
Si les propriétés et les propriétés de l’instance StartInfo sont définies, la fonction non managée CreateProcessWithLogonW est appelée, ce qui démarre le processus dans une nouvelle fenêtre, même si la ProcessStartInfo.CreateNoWindow valeur de la propriété est true ou si la valeur de la ProcessStartInfo.WindowStyle propriété est ProcessWindowStyle.Hidden.ProcessStartInfo.UserNameProcessStartInfo.Password Si la ProcessStartInfo.Domain propriété est null, la ProcessStartInfo.UserName propriété doit être au format UPN, l’utilisateur@DNS_domain_name.
Contrairement aux autres surcharges, la surcharge de Start ce paramètre n’est pas membre static . Utilisez cette surcharge lorsque vous avez déjà créé une Process instance et spécifié des informations de démarrage (y compris le nom de fichier), et que vous souhaitez démarrer une ressource de processus et l’associer à l’instance existante Process . Utilisez l’une des static surcharges lorsque vous souhaitez créer un Process composant au lieu de démarrer un processus pour un composant existant. Cette surcharge et la surcharge qui n’ont aucun paramètre vous permettent de spécifier les informations de démarrage de la ressource de processus à l’aide d’une ProcessStartInfo instance.
Si vous disposez d’une variable de chemin d’accès déclarée dans votre système à l’aide de guillemets, vous devez qualifier pleinement ce chemin lors du démarrage d’un processus trouvé à cet emplacement. Sinon, le système ne trouve pas le chemin d’accès. Par exemple, si c:\mypath ce n’est pas dans votre chemin d’accès et que vous l’ajoutez à l’aide de guillemets : path = %path%;"c:\mypath", vous devez qualifier pleinement tout processus c:\mypath au démarrage de celui-ci.
Note
ASP.NET code de contrôle de serveur et de page web s’exécute dans le contexte du processus de travail ASP.NET sur le serveur Web. Si vous utilisez la Start méthode dans une page web ou un contrôle serveur ASP.NET, le nouveau processus s’exécute sur le serveur Web avec des autorisations restreintes. Le processus ne démarre pas dans le même contexte que le navigateur client et n’a pas accès au bureau utilisateur.
Chaque fois que vous utilisez Start pour démarrer un processus, vous devrez peut-être le fermer ou vous risquez de perdre des ressources système. Fermez les processus à l’aide CloseMainWindow ou Kill. Vous pouvez vérifier si un processus a déjà été fermé à l’aide de sa HasExited propriété.
Une remarque sur les états d’appartement dans les threads managés est nécessaire ici. Quand UseShellExecute il se trouve true sur le startInfo paramètre, vérifiez que vous avez défini un modèle de thread sur votre application en définissant l’attribut [STAThread] sur la main() méthode. Dans le cas contraire, un thread managé peut se trouver dans un unknown état ou être placé dans l’état, dont celui-ci MTA est en conflit avec UseShellExecute l’être true. Certaines méthodes nécessitent que l’état de l’appartement ne soit unknownpas . Si l’état n’est pas défini explicitement, lorsque l’application rencontre une telle méthode, elle a la valeur par défaut MTA, et une fois définie, l’état de l’appartement ne peut pas être modifié. Toutefois, MTA une exception est levée lorsque l’interpréteur de commandes du système d’exploitation gère le thread.
Voir aussi
S’applique à
Start()
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- 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
Retours
true si une ressource de processus est démarrée ; false si aucune nouvelle ressource de processus n’est démarrée (par exemple, si un processus existant est réutilisé).
- Attributs
Exceptions
Aucun nom de fichier n’a StartInfoété spécifié dans le Process composant.
- ou -
Le UseShellExecute membre de la StartInfo propriété est true alors RedirectStandardInput, RedirectStandardOutputou RedirectStandardError est true.
Une erreur s’est produite lors de l’ouverture du fichier associé.
L’objet de processus a déjà été supprimé.
Méthode non prise en charge sur les systèmes d’exploitation sans prise en charge de l’interpréteur de commandes comme Nano Server (.NET Core uniquement).
Exemples
L’exemple suivant utilise une instance de la Process classe pour démarrer un processus.
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
Remarques
Utilisez cette surcharge pour démarrer une ressource de processus et l’associer au composant actuel Process . La valeur true de retour indique qu’une nouvelle ressource de processus a été démarrée. Si la ressource de processus spécifiée par le FileName membre de la StartInfo propriété est déjà en cours d’exécution sur l’ordinateur, aucune ressource de processus supplémentaire n’est démarrée. Au lieu de cela, la ressource de processus en cours d’exécution est réutilisée et false retournée.
Vous pouvez démarrer une application ClickOnce en spécifiant l’emplacement (par exemple, une adresse web) à partir duquel vous avez installé l’application à l’origine. Ne démarrez pas une application ClickOnce en spécifiant son emplacement installé sur votre disque dur.
Important
L’utilisation d’une instance de ce type avec des données non approuvées est un risque de sécurité. Utilisez cet objet uniquement avec des données approuvées. Pour plus d’informations, consultez Valider toutes les entrées.
Note
Si vous utilisez Visual Studio, cette surcharge de la Start méthode est celle que vous insérez dans votre code après avoir fait glisser un Process composant sur le concepteur. Utilisez la Properties fenêtre pour développer la StartInfo catégorie et écrire la valeur appropriée dans la FileName propriété. Vos modifications apparaissent dans la procédure du InitializeComponent formulaire.
Cette surcharge n’est Start pas une static méthode. Vous devez l’appeler à partir d’une instance de la Process classe. Avant d’appeler Start, vous devez d’abord spécifier StartInfo des informations de propriété pour cette Process instance, car ces informations sont utilisées pour déterminer la ressource de processus à démarrer.
Les autres surcharges de la Start méthode sont static des membres. Vous n’avez pas besoin de créer une instance du Process composant avant d’appeler ces surcharges de la méthode. Au lieu de cela, vous pouvez appeler Start la Process classe elle-même et un nouveau Process composant est créé si le processus a été démarré. Ou est null retourné si un processus a été réutilisé. La ressource de processus est automatiquement associée au nouveau Process composant retourné par la Start méthode.
Les StartInfo membres peuvent être utilisés pour dupliquer les fonctionnalités de la Run boîte de dialogue du menu Windows Start . Tout ce qui peut être tapé dans une ligne de commande peut être démarré en définissant les valeurs appropriées dans la StartInfo propriété. La seule StartInfo propriété qui doit être définie est la FileName propriété. La FileName propriété n’a pas besoin d’être un fichier exécutable. Il peut s’agir de n’importe quel type de fichier pour lequel l’extension a été associée à une application installée sur le système. Par exemple, la FileName propriété peut avoir une extension .txt si vous avez associé des fichiers texte avec un éditeur, tel que le Bloc-notes, ou il peut avoir une extension .doc si vous avez associé des fichiers .doc avec un outil de traitement de texte, tel que Microsoft Word.
Dans la ligne de commande, vous pouvez spécifier des actions à effectuer pour certains types de fichiers. Par exemple, vous pouvez imprimer des documents ou modifier des fichiers texte. Spécifiez ces actions à l’aide du Verb membre de la StartInfo propriété. Pour d’autres types de fichiers, vous pouvez spécifier des arguments de ligne de commande lorsque vous démarrez le fichier à partir de la Run boîte de dialogue. Par exemple, vous pouvez passer une URL en tant qu’argument si vous spécifiez votre navigateur comme étant le FileName. Ces arguments peuvent être spécifiés dans le membre de Arguments la StartInfo propriété.
Si vous disposez d’une variable de chemin d’accès déclarée dans votre système à l’aide de guillemets, vous devez qualifier pleinement ce chemin lors du démarrage d’un processus trouvé à cet emplacement. Sinon, le système ne trouve pas le chemin d’accès. Par exemple, si c:\mypath ce n’est pas dans votre chemin d’accès et que vous l’ajoutez à l’aide de guillemets : path = %path%;"c:\mypath", vous devez qualifier pleinement tout processus c:\mypath au démarrage de celui-ci.
Note
ASP.NET code de contrôle de serveur et de page web s’exécute dans le contexte du processus de travail ASP.NET sur le serveur Web. Si vous utilisez la Start méthode dans une page web ou un contrôle serveur ASP.NET, le nouveau processus s’exécute sur le serveur Web avec des autorisations restreintes. Le processus ne démarre pas dans le même contexte que le navigateur client et n’a pas accès au bureau utilisateur.
Chaque fois que vous utilisez Start pour démarrer un processus, vous devrez peut-être le fermer ou vous risquez de perdre des ressources système. Fermez les processus à l’aide CloseMainWindow ou Kill. Vous pouvez vérifier si un processus a déjà été fermé à l’aide de sa HasExited propriété.
Une remarque sur les états d’appartement dans les threads managés est nécessaire ici. Quand UseShellExecute elle se trouve true sur la propriété du composant de StartInfo processus, vérifiez que vous avez défini un modèle de thread sur votre application en définissant l’attribut [STAThread] sur la main() méthode. Dans le cas contraire, un thread managé peut se trouver dans un unknown état ou être placé dans l’état, dont celui-ci MTA est en conflit avec UseShellExecute l’être true. Certaines méthodes nécessitent que l’état de l’appartement ne soit unknownpas . Si l’état n’est pas défini explicitement, lorsque l’application rencontre une telle méthode, elle a la valeur par défaut MTA, et une fois définie, l’état de l’appartement ne peut pas être modifié. Toutefois, MTA une exception est levée lorsque l’interpréteur de commandes du système d’exploitation gère le thread.
Voir aussi
S’applique à
Start(String, IEnumerable<String>)
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
Démarre une ressource de processus en spécifiant le nom d’une application et un ensemble d’arguments de ligne de commande.
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
Paramètres
- fileName
- String
Nom d’un document ou d’un fichier d’application à exécuter dans le processus.
- arguments
- IEnumerable<String>
Arguments de ligne de commande à passer lors du démarrage du processus.
Retours
Nouveau Process associé à la ressource de processus ou null si aucune ressource de processus n’est démarrée.
- Attributs
Remarques
Chaque argument est placé automatiquement dans une séquence d’échappement si nécessaire.
Important
L’appel de cette méthode avec des données non approuvées est un risque de sécurité. Appelez cette méthode uniquement avec des données approuvées. Pour plus d’informations, consultez Valider toutes les entrées.