184 votes

Comment lancer un processus à partir de C# ?

Comment lancer un processus, tel que le lancement d'une URL lorsque l'utilisateur clique sur un bouton ?

6voto

Ravi Kumar G N Points 107
class ProcessStart
{
    static void Main(string[] args)
    {
        Process notePad = new Process();

        notePad.StartInfo.FileName   = "notepad.exe";
        notePad.StartInfo.Arguments = "ProcessStart.cs";

        notePad.Start();
    }
}

5voto

Franci Penov Points 45358

Utilisez le Processus classe. La documentation MSDN contient un exemple d'utilisation.

5voto

alireza amini Points 5

Vous pouvez utiliser cette syntaxe pour exécuter n'importe quelle application :

System.Diagnostics.Process.Start("Example.exe");

Et le même pour une URL. Il suffit d'écrire votre URL entre ceci () .

Exemple :

System.Diagnostics.Process.Start("http://www.google.com");

3voto

Carla Jesus Points 41

Déclarez ceci

[DllImport("user32")]
private static extern bool SetForegroundWindow(IntPtr hwnd);
[DllImport("user32")]
private static extern bool ShowWindowAsync(IntPtr hwnd, int a);

Et mettez ceci dans votre fonction (notez que "checkInstalled" est optionnel, mais si vous l'utilisez, vous devez l'implémenter)

if (ckeckInstalled("example"))
{
    int count = Process.GetProcessesByName("example").Count();
    if (count < 1)
        Process.Start("example.exe");
    else
    {
        var proc = Process.GetProcessesByName("example").FirstOrDefault();
        if (proc != null && proc.MainWindowHandle != IntPtr.Zero)
        {
            SetForegroundWindow(proc.MainWindowHandle);
            ShowWindowAsync(proc.MainWindowHandle, 3);
        }
    }
}

NOTE : Je ne suis pas sûr que cela fonctionne lorsque plus d'une instance du fichier .exe est en cours d'exécution.

3voto

Moon Waxing Points 21

Si vous utilisez Windows

Process process = new Process();
process.StartInfo.FileName = "Test.txt";
process.Start();

Fonctionne pour .Net Framework mais pour Net core 3.1, il faut également définir UseShellExecute sur true.

Process process = new Process();
process.StartInfo.FileName = "Test.txt";
process.StartInfo.UseShellExecute = true;
process.Start();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X