Process.Start Méthode

Définition

Lance une ressource de processus et l'associe à un composant Process.

Surcharges

Start(String, String, String, SecureString, String)

Démarre une ressource de processus en spécifiant le nom d'une application, un jeu d'arguments de ligne de commande, un nom d'utilisateur, un mot de passe et un domaine, et associe la ressource à un nouveau composant Process.

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 composant Process.

Start(String, String)

Démarre une ressource de processus en spécifiant le nom d’une application et un jeu d’arguments de ligne de commande et l’associe à la ressource avec un nouveau composant Process.

Start(String)

Démarre une ressource de processus en spécifiant le nom d'un document ou d'un fichier d'application et l'associe à un nouveau composant Process.

Start(ProcessStartInfo)

Démarre la ressource de processus qui est 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 l'associe à un nouveau composant Process.

Start()

Démarre (ou réutilise) la ressource de processus qui est spécifiée par la propriété StartInfo de ce composant Process 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)

Important

Cette API n’est pas conforme CLS.

Démarre une ressource de processus en spécifiant le nom d'une application, un jeu d'arguments de ligne de commande, un nom d'utilisateur, un mot de passe et un domaine, et associe la ressource à un nouveau composant Process.

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 au moment du démarrage du processus.

userName
String

Nom d'utilisateur à utiliser au moment du démarrage du processus.

password
SecureString

SecureString qui contient le mot de passe à utiliser lors du démarrage du processus.

domain
String

Domaine à utiliser au moment du démarrage du processus.

Retours

Nouvel élément Process qui est associé à la ressource de processus, ou null si aucune ressource de processus n'est démarrée. Notez qu’un nouveau processus démarré en même temps que les instances du même processus déjà en cours d’exécution est indépendant des autres. En outre, le démarrage peut retourner un processus non null avec sa propriété HasExited déjà définie à true. Dans ce cas, le processus démarré peut avoir activé une instance existante de lui-même, puis s'être 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 -

Le fichier spécifié dans fileName est introuvable.

- 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 suivants : « La zone de données passée à 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).

Remarque

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é.

Remarque

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 Process instance. La surcharge est une alternative aux étapes explicites de création d’une Process instance, de définition FileNamedes propriétés , Arguments, UserNamePassword, et Domain de la propriété et de l’appel StartInfoStart 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.

Remarque

Le nom de fichier doit représenter un fichier exécutable dans les Start surcharges qui ont userNamedes paramètres , passwordet domain .

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 de 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)

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 composant Process.

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 au moment du démarrage du processus.

password
SecureString

SecureString qui contient le mot de passe à utiliser lors du démarrage du processus.

domain
String

Domaine à utiliser au moment du démarrage du processus.

Retours

Nouvel élément Process qui est associé à la ressource de processus, ou null si aucune ressource de processus n'est démarrée. Notez qu’un nouveau processus démarré en même temps que les instances du même processus déjà en cours d’exécution est indépendant des autres. En outre, le démarrage peut retourner un processus non null avec sa propriété HasExited déjà définie à true. Dans ce cas, le processus démarré peut avoir activé une instance existante de lui-même, puis s'être arrêté.

Attributs

Exceptions

Aucun nom de fichier n’a été spécifié.

Une erreur s’est produite à l’ouverture du fichier associé.

- ou -

Le fichier spécifié dans fileName est introuvable.

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 la levée d’un Win32Exception quand une tentative de démarrage d’une application associée à un fichier non exécutable est effectuée.

// NOTE: This example requires a text.txt file file in your Documents folder
using System;
using System.Diagnostics;
using System.Security;
using System.ComponentModel;

class Example
{
    static void Main()
    {
        Console.Write("Enter your domain: ");
        string domain = Console.ReadLine();
        Console.Write("Enter you user name: ");
        string uname = Console.ReadLine();
        Console.Write("Enter your password: ");
        SecureString password = new SecureString();
        ConsoleKeyInfo key;
        do
        {
            key = Console.ReadKey(true);

            // Ignore any key out of range.
            if (((int)key.Key) >= 33 && ((int)key.Key <= 90) && key.Key != ConsoleKey.Enter)
            {
                // Append the character to the password.
                password.AppendChar(key.KeyChar);
                Console.Write("*");
            }
            // Exit if Enter key is pressed.
        } while (key.Key != ConsoleKey.Enter);
        Console.WriteLine();

        try
        {
            Console.WriteLine("\nTrying to launch NotePad using your login information...");
            Process.Start("notepad.exe", uname, password, domain);
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\";

        try
        {
            // The following call to Start succeeds if test.txt exists.
            Console.WriteLine("\nTrying to launch 'text.txt'...");
            Process.Start(path + "text.txt");
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        try
        {
            // Attempting to start in a shell using this Start overload fails. This causes
            // the following exception, which is picked up in the catch block below:
            // The specified executable is not a valid application for this OS platform.
            Console.WriteLine("\nTrying to launch 'text.txt' with your login information...");
            Process.Start(path + "text.txt", uname, password, domain);
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            password.Dispose();
        }
    }
}
' This sample requires a text.txt file file in your documents folder.
' You'll also need to set the startup object in the project to Sub Main.
Imports System.Diagnostics
Imports System.Security
Imports System.ComponentModel

Module Program
    Sub Main()
        Console.Write("Enter your domain: ")
        Dim domain As String = Console.ReadLine()
        Console.Write("Enter you user name: ")
        Dim uname As String = Console.ReadLine()
        Console.Write("Enter your password: ")
        Dim password As New SecureString()
        Dim key As ConsoleKeyInfo
        Do
            key = Console.ReadKey(True)

            ' Ignore any key out of range.
            If key.Key >= 33 AndAlso key.Key <= 90 AndAlso key.Key <> ConsoleKey.Enter Then
                ' Append the character to the password.
                password.AppendChar(key.KeyChar)
                Console.Write("*")
            End If
            ' Exit if Enter key is pressed.
        Loop While key.Key <> ConsoleKey.Enter
        Console.WriteLine()

        Try
            Console.WriteLine(vbCrLf + "Trying to launch NotePad using your login information...")
            Process.Start("notepad.exe", uname, password, domain)
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        End Try

        Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\"

        Try
            ' The following call to Start succeeds if test.txt exists.
            Console.WriteLine(vbCrLf + "Trying to launch 'text.txt'...")
            Process.Start(path + "Text.txt")
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        End Try

        Try
            ' Attempting to start in a shell using this Start overload fails. This causes
            ' the following exception, which is picked up in the catch block below:
            ' The specified executable is not a valid application for this OS platform.
            Console.WriteLine(vbCrLf + "Trying to launch 'text.txt' with your login information...")
            Process.Start(path + "Text.txt", uname, password, domain)
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        Finally
            password.Dispose()
        End Try
    End Sub
End Module

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).

Remarque

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é.

Remarque

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 Process instance. La surcharge est une alternative aux étapes explicites de création d’une Process instance, de définition FileNamedes propriétés , UserName, Passwordet Domain de la propriété et de l’appel StartInfoStart de l’instance Process .

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.

Remarque

Le nom de fichier doit représenter un fichier exécutable dans les Start surcharges qui ont userNamedes paramètres , passwordet domain .

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 de 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)

Démarre une ressource de processus en spécifiant le nom d’une application et un jeu d’arguments de ligne de commande et l’associe à la ressource avec un nouveau composant Process.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments);
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String) As Process

Paramètres

fileName
String

Nom d'un fichier d'application à exécuter dans le processus.

arguments
String

Arguments de ligne de commande à passer au moment du démarrage du processus.

Retours

Nouvel élément Process qui est associé à la ressource de processus, ou null si aucune ressource de processus n'est démarrée. Notez qu’un nouveau processus démarré en même temps que les instances du même processus déjà en cours d’exécution est indépendant des autres. En outre, le démarrage peut retourner un processus non null avec sa propriété HasExited déjà définie à true. Dans ce cas, le processus démarré peut avoir activé une instance existante de lui-même, puis s'être arrêté.

Attributs

Exceptions

Le paramètre fileName ou arguments est null.

Une erreur s’est produite lors de l’ouverture du fichier associé.

- ou -

Le fichier spécifié dans fileName est introuvable.

- ou -

La somme de la longueur des arguments et de la longueur du chemin d’accès complet au processus dépasse 2 080. Le message d’erreur associé à cette exception peut être l’un des suivants : « La zone de données passée à 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 réduite lors de la navigation vers un site spécifique.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // URLs are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

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.

Remarque

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 Process instance. La surcharge est une alternative aux étapes explicites de création d’une instance Process , de définition FileName des membres et Arguments de la StartInfo propriété et d’appel Start de l’instance Process .

Démarrer un processus en spécifiant son nom de fichier et ses arguments est similaire à taper le nom de fichier et les 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 .txt si vous avez associé des fichiers texte à un éditeur, tel que le Bloc-notes, ou il peut avoir un .doc si vous avez associé .doc fichiers à 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 une fois terminée.

Contrairement aux autres surcharges, la surcharge de qui n’a Start aucun 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 static des surcharges lorsque vous souhaitez créer un nouveau Process composant au lieu de démarrer un processus pour un composant existant. Cette surcharge et la surcharge sans paramètres 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 avez une variable de chemin d’accès déclarée dans votre système à l’aide de guillemets, vous devez entièrement qualifier ce chemin lors du démarrage d’un processus trouvé à cet emplacement. Sinon, le système ne trouvera pas le chemin d’accès. Par exemple, si c:\mypath n’est pas dans votre chemin d’accès et que vous l’ajoutez entre guillemets : path = %path%;"c:\mypath", vous devez entièrement qualifier n’importe quel processus dans c:\mypath lors du démarrage.

Remarque

ASP.NET page web et le code de contrôle du serveur s’exécutent dans le contexte du processus de travail ASP.NET sur le serveur web. Si vous utilisez la Start méthode dans une page web ASP.NET ou un contrôle serveur, 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 de l’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 de CloseMainWindow ou Kill. Vous pouvez vérifier si un processus a déjà été fermé à l’aide de sa HasExited propriété.

Une note sur les états d’appartement dans les threads managés est nécessaire ici. Lorsque UseShellExecute 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 . Sinon, un thread managé peut être dans un unknown état ou placé dans l’état MTA , ce dernier étant en conflit avec UseShellExecutetrue. Certaines méthodes exigent 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 MTAvaleur par défaut et une fois défini, l’état d’appartement ne peut pas être modifié. Toutefois, MTA provoque la levée d’une exception lorsque l’interpréteur de commandes du système d’exploitation gère le thread.

Voir aussi

S’applique à

Start(String)

Démarre une ressource de processus en spécifiant le nom d'un document ou d'un fichier d'application et l'associe à un nouveau composant Process.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName);
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName);
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String) As Process

Paramètres

fileName
String

Nom d'un document ou d'un fichier d'application à exécuter dans le processus.

Retours

Nouvel élément Process qui est associé à la ressource de processus, ou null si aucune ressource de processus n'est démarrée. Notez qu’un nouveau processus démarré en même temps que les instances du même processus déjà en cours d’exécution est indépendant des autres. En outre, le démarrage peut retourner un processus non null avec sa propriété HasExited déjà définie à true. Dans ce cas, le processus démarré peut avoir activé une instance existante de lui-même, puis s'être arrêté.

Attributs

Exceptions

Une erreur s’est produite lors de l’ouverture du fichier associé.

- ou -

Le fichier spécifié dans fileName est introuvable.

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 réduite lors de la navigation vers un site spécifique.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // URLs are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

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.

Remarque

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 Process instance. La surcharge est une alternative aux étapes explicites de création d’une Process instance, de définition du FileName membre de la StartInfo propriété et d’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 initialement installé l’application. 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 .txt si vous avez associé des fichiers texte à un éditeur, tel que le Bloc-notes, ou il peut avoir un .doc si vous avez associé .doc fichiers à 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 Process.Start(ProcessStartInfo) surcharges ou Process.Start(String, String) .

Contrairement aux autres surcharges, la surcharge de qui n’a Start aucun 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 static des surcharges lorsque vous souhaitez créer un nouveau Process composant au lieu de démarrer un processus pour un composant existant. Cette surcharge et la surcharge sans paramètres vous permettent de spécifier le nom de fichier de la ressource de processus à démarrer.

Si vous avez une variable de chemin d’accès déclarée dans votre système à l’aide de guillemets, vous devez entièrement qualifier ce chemin lors du démarrage d’un processus trouvé à cet emplacement. Sinon, le système ne trouvera pas le chemin d’accès. Par exemple, si c:\mypath n’est pas dans votre chemin d’accès et que vous l’ajoutez entre guillemets : path = %path%;"c:\mypath", vous devez entièrement qualifier n’importe quel processus dans c:\mypath lors du démarrage.

Remarque

ASP.NET page web et le code de contrôle du serveur s’exécutent dans le contexte du processus de travail ASP.NET sur le serveur web. Si vous utilisez la Start méthode dans une page web ASP.NET ou un contrôle serveur, 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 de l’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 de CloseMainWindow ou Kill. Vous pouvez vérifier si un processus a déjà été fermé à l’aide de sa HasExited propriété.

Une note sur les états d’appartement dans les threads managés est nécessaire ici. Lorsque UseShellExecute 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 . Sinon, un thread managé peut être dans un unknown état ou placé dans l’état MTA , ce dernier étant en conflit avec UseShellExecutetrue. Certaines méthodes exigent 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 MTAvaleur par défaut et une fois défini, l’état d’appartement ne peut pas être modifié. Toutefois, MTA provoque la levée d’une exception lorsque l’interpréteur de commandes du système d’exploitation gère le thread.

Voir aussi

S’applique à

Start(ProcessStartInfo)

Démarre la ressource de processus qui est 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 l'associe à un nouveau composant Process.

public:
 static System::Diagnostics::Process ^ Start(System::Diagnostics::ProcessStartInfo ^ startInfo);
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
public static System.Diagnostics.Process Start (System.Diagnostics.ProcessStartInfo startInfo);
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
Public Shared Function Start (startInfo As ProcessStartInfo) As Process

Paramètres

startInfo
ProcessStartInfo

ProcessStartInfo qui contient les informations utilisées pour démarrer le processus, y compris le nom de fichier et d'éventuels arguments de ligne de commande.

Retours

Nouvel élément Process qui est associé à la ressource de processus, ou null si aucune ressource de processus n'est démarrée. Notez qu’un nouveau processus démarré en même temps que les instances du même processus déjà en cours d’exécution est indépendant des autres. En outre, le démarrage peut retourner un processus non null avec sa propriété HasExited déjà définie à true. Dans ce cas, le processus démarré peut avoir activé une instance existante de lui-même, puis s'être arrêté.

Attributs

Exceptions

Aucun nom de fichier n’a été spécifié dans la propriété FileName du paramètre startInfo.

- ou -

La propriété UseShellExecute du paramètre startInfo a la valeur true, et la propriété RedirectStandardInput, RedirectStandardOutput ou RedirectStandardError a également la valeur true.

- ou -

La propriété UseShellExecute du paramètre startInfo a la valeur true et la propriété UserName n’a pas la valeur null ou est vide ou la propriété Password n’a pas la valeur null.

Le paramètre startInfo a la valeur null.

L’objet de processus a déjà été supprimé.

Une erreur s’est produite lors de l’ouverture du fichier associé.

- ou -

Le fichier spécifié dans la propriété FileName du paramètre startInfo est introuvable.

- ou -

La somme de la longueur des arguments et de la longueur du chemin d’accès complet au processus dépasse 2 080. Le message d’erreur associé à cette exception peut être l’un des suivants : « La zone de données passée à 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 réduite 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.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // URLs are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

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.

Remarque

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 au préalable une instance Process . L’utilisation de cette surcharge avec un ProcessStartInfo paramètre est une alternative aux étapes explicites de création d’une instance Process , de définition de ses StartInfo propriétés et d’appel Start de l’instance Process .

L’utilisation d’une ProcessStartInfo instance comme paramètre vous permet d’appeler Start 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 instance ProcessStartInfo , bien qu’il s’agisse 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 à un éditeur, tel que le Bloc-notes, ou elle peut avoir une extension .doc si vous avez associé .doc fichiers à 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 initialement installé l’application. Ne démarrez pas une application ClickOnce en spécifiant son emplacement d’installation sur votre disque dur.

Si les ProcessStartInfo.UserName propriétés et ProcessStartInfo.Password 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 valeur de la ProcessStartInfo.CreateNoWindow propriété est true ou si la valeur de la ProcessStartInfo.WindowStyle propriété est ProcessWindowStyle.Hidden. Si la propriété a la ProcessStartInfo.Domain valeur null, la ProcessStartInfo.UserName propriété doit être au format UPN, l’utilisateur@DNS_domain_name.

Contrairement aux autres surcharges, la surcharge de qui n’a Start aucun 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 static des 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 les informations de démarrage de la ressource de processus à l’aide d’une ProcessStartInfo instance.

Si vous avez une variable de chemin d’accès déclarée dans votre système à l’aide de guillemets, vous devez qualifier entièrement ce chemin lors du démarrage d’un processus trouvé à cet emplacement. Sinon, le système ne trouvera pas le chemin d’accès. Par exemple, si c:\mypath n’est pas dans votre chemin d’accès et que vous l’ajoutez entre guillemets : path = %path%;"c:\mypath", vous devez qualifier entièrement tout processus dans c:\mypath lors de son démarrage.

Remarque

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 ASP.NET ou un contrôle serveur, 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 de l’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 de CloseMainWindow ou Kill. Vous pouvez vérifier si un processus a déjà été fermé à l’aide de sa HasExited propriété.

Une note sur les états d’appartement dans les threads managés est nécessaire ici. Quand UseShellExecute est 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 . Sinon, un thread managé peut être dans un unknown état ou placé dans l’état MTA , ce dernier étant en conflit avec UseShellExecutetrue. Certaines méthodes nécessitent que l’état d’appartement ne soit unknownpas . Si l’état n’est pas défini explicitement, lorsque l’application rencontre une telle méthode, elle est MTAdéfinie par défaut sur , et une fois défini, l’état d’appartement ne peut pas être modifié. Toutefois, MTA provoque la levée d’une exception lorsque l’interpréteur de commandes du système d’exploitation gère le thread.

Voir aussi

S’applique à

Start()

Démarre (ou réutilise) la ressource de processus qui est spécifiée par la propriété StartInfo de ce composant Process et l'associe au composant.

public:
 bool Start();
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public bool Start ();
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
member this.Start : unit -> bool
Public Function Start () As Boolean

Retours

true si une ressource de processus est démarrée ; false si aucune 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 été spécifié dans le StartInfo du composant Process.

- ou -

Le membre UseShellExecute de la propriété StartInfo est true alors que RedirectStandardInput, RedirectStandardOutputou RedirectStandardError a la valeur true.

Une erreur s’est produite à 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.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

int main()
{
    Process^ myProcess = gcnew Process;

    try
    {
        myProcess->StartInfo->UseShellExecute = false;
        // You can start any process, HelloWorld is a do-nothing example.
        myProcess->StartInfo->FileName = "C:\\HelloWorld.exe";
        myProcess->StartInfo->CreateNoWindow = true;
        myProcess->Start();
        // This code assumes the process you are starting will terminate itself. 
        // Given that it is started without a window so you cannot terminate it 
        // on the desktop, it must terminate itself or you can do it programmatically
        // from this application using the Kill method.
    }
    catch ( Exception^ e ) 
    {
        Console::WriteLine( e->Message );
    }
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        public static void Main()
        {
            try
            {
                using (Process myProcess = new Process())
                {
                    myProcess.StartInfo.UseShellExecute = false;
                    // You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
                    myProcess.StartInfo.CreateNoWindow = true;
                    myProcess.Start();
                    // This code assumes the process you are starting will terminate itself.
                    // Given that it is started without a window so you cannot terminate it
                    // on the desktop, it must terminate itself or you can do it programmatically
                    // from this application using the Kill method.
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        Public Shared Sub Main()
            Try
                Using myProcess As New Process()

                    myProcess.StartInfo.UseShellExecute = False
                    ' You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe"
                    myProcess.StartInfo.CreateNoWindow = True
                    myProcess.Start()
                    ' This code assumes the process you are starting will terminate itself. 
                    ' Given that it is started without a window so you cannot terminate it 
                    ' on the desktop, it must terminate itself or you can do it programmatically
                    ' from this application using the Kill method.
                End Using
            Catch e As Exception
                Console.WriteLine((e.Message))
            End Try
        End Sub
    End Class
End Namespace

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 initialement installé l’application. Ne démarrez pas une application ClickOnce en spécifiant son emplacement d’installation sur votre disque dur.

Remarque

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 vers 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 s’affichent dans la procédure du InitializeComponent formulaire.

Cette surcharge de 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 les 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 pour 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é ne doit pas ê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 à un éditeur, tel que le Bloc-notes, ou elle peut avoir une extension .doc si vous avez associé .doc fichiers à un outil de traitement de texte, tel que Microsoft Word.

Dans la ligne de commande, vous pouvez spécifier les 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 FileName. Ces arguments peuvent être spécifiés dans le membre de la StartInfoArguments propriété .

Si vous avez une variable de chemin d’accès déclarée dans votre système à l’aide de guillemets, vous devez qualifier entièrement ce chemin lors du démarrage d’un processus trouvé à cet emplacement. Sinon, le système ne trouvera pas le chemin d’accès. Par exemple, si c:\mypath n’est pas dans votre chemin d’accès et que vous l’ajoutez entre guillemets : path = %path%;"c:\mypath", vous devez qualifier entièrement tout processus dans c:\mypath lors de son démarrage.

Remarque

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 ASP.NET ou un contrôle serveur, 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 de l’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 de CloseMainWindow ou Kill. Vous pouvez vérifier si un processus a déjà été fermé à l’aide de sa HasExited propriété.

Une note sur les états d’appartement dans les threads managés est nécessaire ici. Quand UseShellExecute est 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 . Sinon, un thread managé peut être dans un unknown état ou placé dans l’état MTA , ce dernier étant en conflit avec UseShellExecutetrue. Certaines méthodes nécessitent que l’état d’appartement ne soit unknownpas . Si l’état n’est pas défini explicitement, lorsque l’application rencontre une telle méthode, elle est MTAdéfinie par défaut sur , et une fois défini, l’état d’appartement ne peut pas être modifié. Toutefois, MTA provoque la levée d’une exception lorsque l’interpréteur de commandes du système d’exploitation gère le thread.

Voir aussi

S’applique à

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.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::Collections::Generic::IEnumerable<System::String ^> ^ arguments);
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As IEnumerable(Of String)) As Process

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 au démarrage du processus.

Retours

Nouvel élément Process qui est associé à la ressource de processus, ou null si aucune ressource de processus n'est démarrée.

Attributs

Remarques

Chaque argument est automatiquement placé dans une séquence d’échappement si nécessaire.

S’applique à