Zeitpunkte vergleichen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Günni.

    Zeitpunkte vergleichen

    Hallo,

    ich versuche ein kleines Programm zu schreiben, welches zu einer bestimmten Zeit den Rechenr herunterfährt:

    Unten ist der Quellcode, denn ich bereits geschrieben habe. Ich komme an drei Stellen nciht weiter:

    1. My.Computer. ? wie lautet der Befehl zum herunterfahren des Rechners.
    2. In welcher Art muss ich die Uhrzeit in die Textbox eingeben, Damit diese verglichen werden kann.
    3. Ich bekomme leider nicht nur die Uhrzeit heruas.

    ICh hoffe mir kann jemand ein paar Tips geben, wie ich an dieser Stelle weiter komme. Danke

    VB.NET-Quellcode

    1. Dim Zeit As Date
    2. Dim ZeitPC As Date
    3. Dim I As Short = 0
    4. While I < 5
    5. Timer1.Interval = 3000 ' 3 Sekunden
    6. ZeitPC = My.Computer.Clock.LocalTime
    7. Zeit = CDate(TextBox1.Text)
    8. If Zeit = ZeitPC Then
    9. HERUNTERFAHREN
    10. End If
    11. End While
    du kannst es mit einem Timer machen, so z.B.

    VB.NET-Quellcode

    1. 'Timer vergleicht die Uhrzeit mit der Zeit in der TextBox
    2. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    3. 'Hier findet die Prüfung statt
    4. If Me.TextBox1.Text = System.DateTime.Now.ToShortTimeString Then
    5. 'Timer wird abgeschaltet damit Befehl nur einmal aufgerufen wird.
    6. Me.Timer1.Enabled = False
    7. 'Befehl zum Herunterfahren
    8. System.Diagnostics.Process.Start("shutdown", "-s")
    9. End If
    10. End Sub

    Is natürlich jetzt sehr vereinfacht!
    Hoffe ich konnte dir damit helfen!

    Greetz Günni 8-)
    Hallo

    ich habe etwas an meinem code gearbeitet. Es macht auch genau was ich will. Es gibt dabei nur ein Problem.
    Dadurch, dass der jede milisekunde die zeiten vergleicht hat mein rechenr (Intel Dualcore 2,5 GHz , 2 GB Ram) fast 50 % Auslastung.


    ICh möchte jetzt einen Timer einbauen, damit der nur alle 30 sekunden die zeiten vergleicht!!

    kann mir jemand dabei helfen.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim I As Integer = 0
    3. Dim Zeit As String
    4. Dim ZeitPC As String
    5. Zeit = TextBox1.Text
    6. TextBox2.BackColor = Color.Red
    7. While I < 5
    8. ZeitPC = System.DateTime.Now.ToShortTimeString()
    9. If Zeit = ZeitPC Then
    10. System.Diagnostics.Process.Start("shutdown", "-s")
    11. I = 200
    12. ElseIf Zeit <> ZeitPC Then
    13. I = 2
    14. End If
    15. End While
    hallo phillip,

    günni hat dir doch schon den code des tick events gegeben.
    jetzt musst du den timer nur noch starten

    tipp - ein ist vergleich ist immer schlecht.
    frag ab ob die zeit >= ist.

    gruss

    mikeb69
    ja aber wie bekomme ich das in eine schleife,

    ich möchte später die schleife abbrechen können und somit das herunterfahren stoppen können. Deswegen wollte ich das in eine schleife packen. Das funktioniert ja auch. Aber wie bekomme ich das clickereignis in eine schleife rein.
    du kannst natürlich auch einen Button anlegen und dort den Timer anhalten!

    VB.NET-Quellcode

    1. me.Timer1.Enabled=False

    und schon ist der Timer aus!

    Und den Timer Intervall auf 30000 stellen dann prüft er nur alle 30 Sek (wird in Millisekunden gerechnet)

    Greetz Günni