Autor Beitrag
jkRf4n
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 30.10.08 16:27 
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:

ausblenden volle Höhe 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 30.10.08 19:23 
Soso, um 15.11 Uhr hast Du die Frage hier gestellt und innerhalb von 5 Minuten zwei Antworten bekommen. Warum stellst Du die Ursprungsfrage 10 Minuten später hier nochmals? Jürgen