it-swarm.com.de

Wie starte ich einen Prozess in C #?

Wie starte ich einen Prozess, z. B. das Starten einer URL, wenn der Benutzer auf eine Schaltfläche klickt?

145
WanKenoobi

Wie von Matt Hamilton vorgeschlagen, besteht der schnelle Ansatz, bei dem Sie nur begrenzte Kontrolle über den Prozess haben, darin, die statische Startmethode für die System.Diagnostics.Process-Klasse zu verwenden.

using System.Diagnostics;
...
Process.Start("process.exe");

Die Alternative besteht darin, eine Instanz der Process-Klasse zu verwenden. Dies ermöglicht eine weitaus bessere Kontrolle über den Prozess, einschließlich der Zeitplanung, der Art des Fensters, in dem er ausgeführt wird, und, was für mich am nützlichsten ist, der Möglichkeit, auf den Abschluss des Prozesses zu warten.

using System.Diagnostics;
...
Process process = new Process();
// Configure the process using the StartInfo properties.
process.StartInfo.FileName = "process.exe";
process.StartInfo.Arguments = "-n";
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
process.Start();
process.WaitForExit();// Waits here for the process to exit.

Diese Methode erlaubt weit mehr Kontrolle als ich erwähnt habe.

207
Andy McCluggage

Sie können die Methode System.Diagnostics.Process.Start verwenden, um einen Prozess zu starten. Sie können sogar eine URL als Zeichenfolge übergeben, um den Standardbrowser zu starten.

23
Matt Hamilton

Verwenden Sie genau wie Matt sagt Process.Start .

Sie können eine URL oder ein Dokument übergeben. Sie werden von der registrierten Anwendung gestartet.

Beispiel:

Process.Start("Test.Txt");

Das wird Notepad.exe mit Text.Txt starten, das geladen wird.

9
GvS

Ich habe folgendes in meinem eigenen Programm benutzt.

Process.Start("http://www.google.com/etc/etc/test.txt")

Es ist ein bisschen einfach, aber es macht den Job für mich.

8
Blackvault
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "/YourSubDirectory/yourprogram.exe");
Process.Start(new ProcessStartInfo(path));
6
SimperT

Sie können diese Syntax zum Ausführen einer beliebigen Anwendung verwenden:

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

Und das gleiche für eine URL. Schreiben Sie einfach Ihre URL zwischen diesem ().

Beispiel:

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

Verwenden Sie die Klasse Process . Die MSDN-Dokumentation enthält ein Beispiel für die Verwendung.

5
Franci Penov
class ProcessStart
{
    static void Main(string[] args)
    {
        Process notePad = new Process();

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

        notePad.Start();
    }
}
3
Ravi Kumar G N

Erkläre das

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

Und fügen Sie dies in Ihre Funktion ein (beachten Sie, dass "checkInstalled" optional ist, aber wenn Sie es verwenden, müssen Sie es implementieren).

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);
        }
    }
}

HINWEIS: Ich bin nicht sicher, ob dies funktioniert, wenn mehr als eine Instanz der EXE-Datei ausgeführt wird.

3
Carla Jesus

Fügen Sie den using System.Diagnostics; Ein.

Und dann rufen Sie diese Process.Start("Paste your URL string here!");

Versuchen Sie so etwas:

using System.Web.UI;
using System.Web.UI.WebControls;
using System.Diagnostics;

namespace btnproce
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            string t ="Balotelli";
            Process.Start("http://google.com/search?q=" + t);
        }
    }
}

Bitte beachten Sie, dass es sich um eine Beispiel-ASP.NET-Seite handelt. Sie sollten versuchen, ein wenig zu improvisieren.

2
AVIK DUTTA

Verwenden Sie zum Starten von Microsoft Word beispielsweise den folgenden Code:

private void button1_Click(object sender, EventArgs e)
{
    string ProgramName = "winword.exe";
    Process.Start(ProgramName);
}

Weitere Erklärungen finden Sie unter dieser Link .

1
user4340666