[VB.Net] Herunterfahren in X Sekunden?

04/29/2011 18:17 Diablo_#1
Hallo,

ich möchte einen ShutdownManager machen. Ich habe 4 Buttons.

1. Alle Programme schließen
2. Herunterfahren
3. Neu starten
4. Abmelden

Das funktioniert auch alles. Jetzt habe ich 3 weitere Optionen die man auswählen kann. Nämlich das Herunterfahren/Neu starten/Abmelden in X Sekunden.

Dazu gibt man in die jeweilige TextBox zum Beispiel 60 ein und dann drückt man auf einen Button.

Also, 60 in die TextBox eingeben und dann auf "OK" drücken. Dann passiert die ausgewählte Handlung in 60 Sekunden.

Meine Frage ist daher, wie kann ich es lösen, dass der hingeschriebene Wert in der TextBox dem Shutdown Befehl zugewiesen wird?

Wenn ich 60 in die TextBox schreibe und auf "OK" drücke soll das auch in 60 Sekunden passieren.

Könnt ihr mir helfen? Ich kenne den Befehl nicht. Wäre echt nett. :)

Grüße
04/29/2011 18:24 nkkk#2
[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]
04/29/2011 18:43 Diablo_#3
Quote:
Originally Posted by nkkk View Post
[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]
Hi,

danke erstmal. Allerdings hast meine Frage wohl nicht ganz verstanden Bzw. ich habe sie zu ungenau gestellt.

Ich kenne den Befehl um das Herunterfahren nach X Sekunden zu starten. -t XX

Aber ich möchte ja die Sekunden ändern können und dazu schreibe ich das in die TextBox.

Wenn ich eingebe -t 50 würde ja nach 50 Sekunden das Herunterfahren starten. Aber es würde immer 50 Sekunden dauern. Ich möchte auch mal 40 oder 30 in die TextBox schreiben um es immer wieder ändern zu können.

Außerdem, wie lautet der Befehl um den PC nach XX Sekunden neu zu starten/abzumelden?

-t ist ja nur für's Herunterfahren.

Grüße
04/29/2011 19:51 Kraizy​#4
[Only registered and activated users can see links. Click Here To Register...]
Quote:
Wenn ich eingebe -t 50 würde ja nach 50 Sekunden das Herunterfahren starten. Aber es würde immer 50 Sekunden dauern. Ich möchte auch mal 40 oder 30 in die TextBox schreiben um es immer wieder ändern zu können.
Wo/wie benutzt du denn den Code?
Du packst nen Timer, eine TextBox und einen Button auf deine Form. In der Textbox gibst du dann z.B. 50 ein und per Button liest du den TextBox-Text aus, setzt es als Timer.Interval (nicht vergessen 1sec = 1000ms, also 50sec * 1000 = 50000ms) und startest den Timer. Der Timer führt dann im Tick-Ereignis (nachdem die 50sec vergangen sind) den Code zum Herunterfahren/abmelden/neustarten etc. aus.
04/29/2011 20:04 Diablo_#5
Quote:
Originally Posted by xKraizy View Post
[Only registered and activated users can see links. Click Here To Register...]

Wo/wie benutzt du denn den Code?
Du packst nen Timer, eine TextBox und einen Button auf deine Form. In der Textbox gibst du dann z.B. 50 ein und per Button liest du den TextBox-Text aus, setzt es als Timer.Interval (nicht vergessen 1sec = 1000ms, also 50sec * 1000 = 50000ms) und startest den Timer. Der Timer führt dann im Tick-Ereignis (nachdem die 50sec vergangen sind) den Code zum Herunterfahren/abmelden/neustarten etc. aus.
Hallo,

dann wäre die Zeit aber doch schon wieder vorprogrammiert und ich kann sie im Nachhinein nicht ändern. Wenn ich den Interval setze auf 50.000, wäre der Interval ja immer 50.000. Aber vieleicht will ich ja das System nach 40 Sekunden neu starten lassen. Dann gebe ich 40 ein aber der Interval wäre immernoch 40.000.

Vieleicht habe ich ja einen Denkfehler gerade, ich teste deine Variante einfach mal.

Grüße

/Edit: Ich glaube doch das es richtig ist was du meinst. Aber wie kriege ich es hin das der Button das aus der TextBox ausliest?
04/29/2011 20:26 Kraizy​#6
Nein warum soll das dann immer 50sec sein? Wenn du doch auf den Button drückst, dann wird immer der neue Wert aus der TextBox genommen, kleines Beispiel:
PHP Code:
Private Sub Button1_Click (...) Handles Button1.Click
   Timer1
.Interval CInt(TextBox1.Text) * 1000
   Timer1
.Start  
End Sub

Private Sub Timer1_Tick (...) Handles Timer1.Tick
   
//Code zum herunterfahren/abmelden/neustarten etc.
End Sub 
04/29/2011 21:58 Diablo_#7
Quote:
Originally Posted by xKraizy View Post
Nein warum soll das dann immer 50sec sein? Wenn du doch auf den Button drückst, dann wird immer der neue Wert aus der TextBox genommen, kleines Beispiel:
PHP Code:
Private Sub Button1_Click (...) Handles Button1.Click
   Timer1
.Interval CInt(TextBox1.Text) * 1000
   Timer1
.Start  
End Sub

Private Sub Timer1_Tick (...) Handles Timer1.Tick
   
//Code zum herunterfahren/abmelden/neustarten etc.
End Sub 
Hi,

danke dir vielmals. Du hattest recht, ich hatte da nur etwas übersehen und hatte es für nicht funktionsfähig gehalten. Da ich nun 3 Funktionen habe, habe ich auch 3 Timer benutzt.

Aber nach meinem Test hat es geklappt. Danke dir nochmal.

@ MrSm!th

Ich sehe das als gelöst an, der Thread kann geclosed werden.

Grüße an alle