Entwickler-Ecke

WinForms - Automatischen starten und stoppen einer externen Anwendung!


jkRf4n - Do 30.10.08 16:27
Titel: Automatischen starten und stoppen einer externen Anwendung!
hallo liebe leute!
Ich arbeite nun seit Anfang Oktober mit c# für ein Projekt

Nun bin ich auf folgendes problem gestoßen: (Nur ein Teil des gesamten)
Es ist eine Windows form zu entwickeln mit der ich einen externen Prozess (ein Aufnahme/Recordtool welches schon gerig ist :D) öffnen und schließen kann...
dabei soll der erste teil mit 2 buttons (start und stop) diese externe Anwendung öffnen und schließen!Das funktioniert auch schon wunderbar...

Hier nun das eigentliche Problem:
Es soll als 2te Auswahlmöglichkeit einen Automatischen Start geben.
Also der Benutzer soll in 4 textboxen Startzeit, Startdatum, Stopzeit, Stopdatum eingeben können.
Diese Daten werden per Button übernommen und und mit der Aktuellen Zeit/Datum (DateTime.now und DateTime.Today verglichen) und bei Übereinstimmung halt starten und stoppen.
Das mit dem Starten hab ich schon hinbekommen jedoch friert mir die GUI immer ein bis die Schleife durchlaufen ist!

Hier mal der Code dazu:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
// Button Start Recordtool Automatisch
        private void btnStartAutomatisch_Click(object sender, EventArgs e)
        {
           
            string Startzeit = txtStartzeit.Text;
            DateTime Start = Convert.ToDateTime (Startzeit);
      
            string Startdatum = txtStartdatum.Text;
            DateTime Start2 = Convert.ToDateTime(Startdatum);

           // string Stopzeit = txtStopzeit.Text;
           // DateTime Stop= Convert.ToDateTime (Stopzeit);
      
           // string Stopdatum = txtStopdatum.Text;
           // DateTime Stop2 = Convert.ToDateTime(Stopdatum);


            
            while (true)
            {
                //// Datumsvergleich Eingabe - Heute
                if (Start2 == DateTime.Today)
                {
                    // Zeitvergleich Eingabe - Aktuelle Zeit
                    if (Start == DateTime.Now)
                    {
                        // Starten einer externen Anwendung
                        string Programmname = "C:\\Programme\\Recordtool.exe";
                        System.Diagnostics.Process.Start(Programmname);
                    }

                }
                
            }


Wie kann ich das einfrieren der GUI da verhindern und und wie kann ich da das zur eingegebenen zeit/datum stoppen der Anwendung einbauen???

Code für das stoppen der Anwendung:


C#-Quelltext
1:
2:
3:
4:
// Schließen einer externen Anwendung
Process[] close = Process.GetProcessesByName("Recordtool");
close[0].CloseMainWindow();
close[0].Close();


Danke schon mal im voraus...für eure Hilfe!!!

LG jkRf4n

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


JüTho - Do 30.10.08 19:23

Soso, um 15.11 Uhr hast Du die Frage hier [http://www.mycsharp.de/wbb2/thread.php?threadid=63066] gestellt und innerhalb von 5 Minuten zwei Antworten bekommen. Warum stellst Du die Ursprungsfrage 10 Minuten später hier nochmals? Jürgen