# Java: PC in Schlafmodus versetzen



## Developer_X (18. Mai 2009)

Hi, mit folgendem Code Fragment:

```
Runtime rt=Runtime.getRuntime();
try {rt.exec("shutdown -s -t 00 -f");} catch (IOException e) {e.printStackTrace();}
```

kann man den PC herunterfahren, und wie setzt man ihn in den Schlafmodus?


----------



## faetzminator (18. Mai 2009)

wie wärs wenn du mal

```
shutdown -h
```
ausführen und die Hilfe lesen würdest? mit diesem Codefragment wird nämlich lediglich _shutdown_ mit Parametern aufgerufen.


----------



## Leroy42 (18. Mai 2009)

Developer_X hat gesagt.:


> Hi, mit folgendem Code Fragment:
> 
> ```
> ...
> ...



Und was hat das jetzt mit Java zu tun? :bahnhof:


----------



## Developer_X (18. Mai 2009)

faetzminator hat gesagt.:


> wie wärs wenn du mal
> 
> ```
> shutdown -h
> ...



nee geht auch nicht

```
Runtime rt=Runtime.getRuntime();
					try {rt.exec("shutdown -h");} catch (IOException e) {e.printStackTrace();}
```


----------



## Leroy42 (18. Mai 2009)

LOL!

Du mußt die Ausgabe von _shutdown -h_ natürlich auch einlesen.

Damit du dir es jetzt nicht zu kompliziert machst,
habe ich das mal für dich gemacht:

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Dokumente und Einstellungen\xxx>shutdown -h
Syntax: shutdown [-l | -s | -r | -a] [-f] [-m \\Computer] [-t xx]
                 [-c "Kommentar"] [-d up:xx:yy]

  Keine Argumente Zeigt diese Meldung an (wie -?).
  -i              Zeigt eine grafische Benutzeroberfläche an (muss die erste
                  Option sein).
  -l              Abmelden (kann nicht mit der Option -m verwendet werden).
  -s              Fährt den Computer herunter.
  -r              Fährt den Computer herunter und startet ihn neu.
  -a              Bricht das Herunterfahren des Systems ab.
  -m \\Computer   Remotecomputer zum Herunterfahren/Neustarten/Abbrechen.
  -t xx           Zeitlimit für das Herunterfahren, in xx Sekunden.
  -c "Kommentar"  Kommentar für das Herunterfahren (maximal 127 Zeichen).
  -f              Erzwingt das Schließen ausgeführter Anwendungen ohne Warnung.
  -d [p]:xx:yy Grund (Code) für das Herunterfahren:
                  u = Benutzercode
                  p = Code für geplantes Herunterfahren
                  xx = Hauptgrund (positive ganze Zahl kleiner als 256)
                  yy = Weiterer Grund (positive ganze Zahl kleiner als 65536)


----------



## cover1012 (18. Mai 2009)

Auch wenn es nicht zu Java gehört: Ich glaube mich zu erinnern, dass ein Standby mit der shutdown.exe nicht funktioniert. Daher probier mal:
*rundll32.exe powrprof.dll,SetSuspendState*


----------



## Developer_X (18. Mai 2009)

@Lerroy,
ich meinte eher wie das Per Java aus, geht


----------



## SlaterB (18. Mai 2009)

wenn dir jetzt jemand sagen würde, dass du das auf Webseite x nachlesen musst, machst du das auch nur, wenn das von Java aus geht?
schreibst du gar deine Forenbeiträge direkt in Java?


----------



## Leroy42 (18. Mai 2009)

Du mußt die Ausgabezeilen der Konsole erst einlesen
und dann via system.out.println() ausgeben.

Genau so wie dir jemand in dem anderen Thread ein
Beispielprogramm schrieb, wie du die Ausgabe des dir-Befehls
einlesen und ausgeben kannst.


----------



## Developer_X (18. Mai 2009)

SlaterB hat gesagt.:


> wenn dir jetzt jemand sagen würde, dass du das auf Webseite x nachlesen musst, machst du das auch nur, wenn das von Java aus geht?
> schreibst du gar deine Forenbeiträge direkt in Java?



ich will den PC in den SchlafModus setzten, wenn eine spezielle JavaDatei gestartet wid.


----------



## cover1012 (18. Mai 2009)

Developer_X hat gesagt.:


> ich will den PC in den SchlafModus setzten, wenn eine spezielle JavaDatei gestartet wid.



Dir ist schon klar, was

```
Runtime rt=Runtime.getRuntime();
                    try {rt.exec("shutdown -h");} catch (IOException e) {e.printStackTrace();}
```
eigentlich bewirkt? Du rufst lediglich die windows-shutdown.exe mit Parametern auf. Das funktioniert auch mit anderen Aufrufen. Was du nutzen kannst, habe ich bereits geschrieben.


----------



## Leroy42 (18. Mai 2009)

SlaterB hat gesagt.:


> schreibst du gar deine Forenbeiträge direkt in Java?



Na sicher doch, er hat mit seinem bisherigen Wissen einfach eine 
Java-Applikation geschrieben, die ihm ein Interface bereitstellt,
um in diesem Forum Beiträge verfassen und Antworten lesen zu können.

Unterschätzt mir unseren Developer_X nicht!


----------



## Javalist (19. Mai 2009)

Schau Dir sonst mal das Programm an:
Poweroff

Das kann man ggf auch von der Kommandozeile (und damit aus Java) aus starten.


----------



## Spacerat (19. Mai 2009)

Leroy42 hat gesagt.:


> Na sicher doch, er hat mit seinem bisherigen Wissen einfach eine
> Java-Applikation geschrieben, die ihm ein Interface bereitstellt,
> um in diesem Forum Beiträge verfassen und Antworten lesen zu können.
> 
> Unterschätzt mir unseren Developer_X nicht!


... Ist ja auch keine Kunst (was das posten angeht):[highlight=java]public class JavaProblem
implements Problem
{
  private void postIntoForum()
  {
    System.out.println("Was mache ich falsch?");
  }

  public static void main(String ... args)
  {
    if(args.length > 0) {
      for(String out : args) {
        System.out.println(out);
      }
      System.out.println();
    }
    new JavaProblem().postIntoForum();
  }
}[/highlight]:lol:


----------



## Noctarius (19. Mai 2009)

Soll ich mal eins schreiben und im Blog veröffentlichen? ^^


----------



## Spacerat (19. Mai 2009)

^^ Wenn's dir Spass macht... Ich hab' doch auch nicht gefragt. Und ich bin nur ein normaler Benutzer.


----------



## Noctarius (19. Mai 2009)

Was bin ich denn? OO


----------



## Spacerat (19. Mai 2009)

Hat der Titel "Java-Forum-Team" etwa keine besondere Bedeutung? ???:L ^^


----------



## Vayu (19. Mai 2009)

mir scheint ja irgendwie, dass unser Dev_X rückschritte in seiner "Entwicklung" macht ...


----------



## Noctarius (19. Mai 2009)

Spacerat hat gesagt.:


> Hat der Titel "Java-Forum-Team" etwa keine besondere Bedeutung? ???:L ^^



Also für mich nicht


----------



## Developer_X (19. Mai 2009)

also das Problem ist, wenn ich in die Eingabeaufforderung schreibe shutdown -h 
kommt folgende Meldung:

```
Microsoft Windows [Version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\Kevin Riehl>shutdown -h
Der Ruhezustand ist auf diesem System nicht aktiviert. Sie müssen den Ruhezustan
d aktivieren, um die Option -h verwenden zu können.

C:\Users\Kevin Riehl>
```


----------



## Der Müde Joe (19. Mai 2009)

> Sie müssen den Ruhezustand aktivieren, um die Option -h verwenden zu können.



Immer diese Fachausdrücke...


----------



## Leroy42 (19. Mai 2009)

Developer_X hat gesagt.:


> also das Problem ist, wenn ich in die Eingabeaufforderung schreibe shutdown -h
> kommt folgende Meldung:
> 
> ```
> ...



Ruhezustand? :shock:

Keine Ahnung, was das bedeuten soll! :bahnhof:

(bei mir kommt die Ausgabe, die ich dir schon gestern postete, aber wie ich
das sehe, bietet das Kommando shutdown keine Möglichkeit, einen
_Schlafmodus_ zu erreichen)


----------



## cover1012 (19. Mai 2009)

@ Dev_X

Ich hab dich ja wirklich schon einige male in Schutz genommen. Aber jetzt geb auch ich auf. Liest du eigentlich die Lösungsvorschläge? ???:L


```
try {
     Runtime.getRuntime().exec(
		 "rundll32 powrprof.dll,SetSuspendState");
} catch (IOException e) {
     e.printStackTrace();
}
```


----------



## Developer_X (19. Mai 2009)

cover1012 hat gesagt.:


> @ Dev_X
> 
> Ich hab dich ja wirklich schon einige male in Schutz genommen. Aber jetzt geb auch ich auf. Liest du eigentlich die Lösungsvorschläge? ???:L
> 
> ...



was?! ich dachte dieses "rundll32 powrprof.dll,SetSuspendState" sollte ich in die Eingabeaufforderung geben, hat net funktioniert, aber ich hatt jetzt net gedacht dass es in den JavaCode soll, 
danke cover1012 vielen vielen Dank


----------



## cover1012 (19. Mai 2009)

Developer_X hat gesagt.:


> was?! ich dachte dieses "rundll32 powrprof.dll,SetSuspendState" sollte ich in die Eingabeaufforderung geben, hat net funktioniert, aber ich hatt jetzt net gedacht dass es in den JavaCode soll,



;(


----------



## Leroy42 (19. Mai 2009)

Und wieso geht dann:

```
try {
     Runtime.getRuntime().exec(
		 "rundll32 powrprof.dll,SetSuspendState");
} catch (IOException e) {
     e.printStackTrace();
}
```

_rundll32 powrprof.dll,SetSuspendState_
aber nicht in der Eingabeaufforderung? :shock:

Schon merkwürdig, aber in diesem speziellen Fall,
gebe ich Developer_X ausnahmsweise mal Recht!

(hätte ich nie von mir gedacht... )


----------



## cover1012 (19. Mai 2009)

Leroy42 hat gesagt.:


> Und wieso geht dann:
> 
> _rundll32 powrprof.dll,SetSuspendState_
> aber nicht in der Eingabeaufforderung? :shock:
> ...



habs auf deine Bemerkung hin mal unter Vista SP1 und XP SP3 getestet: funktioniert wunderbar


----------



## Spacerat (19. Mai 2009)

Nun verwirrt mich der Beitrag aber gewaltig...!
"shutdown -h" gibt die Hilfe von "shutdown" in der Konsole aus. Wieso sollte denn dafür der Ruhezustand aktiviert sein? Kann es sein, das "shutdown" ohne aktivierte Ruhezustand gar nicht funktioniert und nicht mal die Hilfe anzeigt? Wohl kaum, weil laut den Einstellungen in meinen Energieoptionen der Ruhezustand auch bei mir deaktiviert ist und "shutdown" trotzdem funktioniert. Der Vorschlag von "cover1012" funktioniert bei mir auch nur dann, wenn der Ruhezustand in oben besagten Optionen aktiviert wird. Was da los?
@DX: Du hast nicht zufällig "shutdown -h" auf den Vorschlag von "cover1012" verlinkt? Wenn doch, wie?


----------



## cover1012 (19. Mai 2009)

Spacerat hat gesagt.:


> Nun verwirrt mich der Beitrag aber gewaltig...!
> "shutdown -h" gibt die Hilfe von "shutdown" in der Konsole aus. Wieso sollte denn dafür der Ruhezustand aktiviert sein? Kann es sein, das "shutdown" ohne aktivierte Ruhezustand gar nicht funktioniert und nicht mal die Hilfe anzeigt? Wohl kaum, weil laut den Einstellungen in meinen Energieoptionen der Ruhezustand auch bei mir deaktiviert ist und "shutdown" trotzdem funktioniert. Der Vorschlag von "cover1012" funktioniert bei mir auch nur dann, wenn der Ruhezustand in oben besagten Optionen aktiviert wird. Was da los?



Also jetzt bin ich auch mittelmäßig irritiert. Bei mir ist der Ruhezustand deaktiviert und trotzdem funktioniert das.???:L


----------



## nO-0n3 (19. Mai 2009)

Ihr redet doch von zwei unterschiedlichen Sachen?
rundll32 powrprof.dll,SetSuspendState
hat doch nichts mit shutdown zu tun?


----------



## Spacerat (19. Mai 2009)

@nO-0n3: Schon klar. Aber fragen wir doch DX, wie er die Konsolenausgabe in dem Beitrag auf Seite 2 ganz oben hinbekommen hat. Wenn ich "shutdown -h" eingebe kommt wie erwartet diese Hilfe, egal ob Ruhezustand aktiviert oder nicht. Wenn ich dagegen "rundll32 powrprof.dll,SetSuspendState" verwende kommt bei deaktiviertem Ruhezustand die Fehlermeldung die in besagtem Beitrag von DX erscheint und bei aktiviertem funktionierts wie cover1012 behauptet.


----------



## cover1012 (19. Mai 2009)

Ich sollte vielleicht noch hinzufügen, dass ich "rundll32 powrprof.dll,SetSuspendState" bei *deaktiviertem *Ruhezustand nur unter XP SP3 getestet habe. Unter Vista hab ich nicht darauf geachtet. Die Konsolenausgabe von DevX sieht mir wie von Vista aus.


----------



## Spacerat (19. Mai 2009)

^^ Ist Vista, oder gefaked. Klar erkennbar an der Version 6.0. Aber auch dort sollte doch bei "shutdown -h" die Hilfe angezeigt werden oder nicht? Andererseits, könnte die Option "-h" ja erst in Vista dazu gekommen sein. Deswegen würde unter XP die hilfe aufgrund falscher Verwendung von "shutdown" erscheinen. Was macht denn "shutdown /?" unter Vista?


----------



## Vayu (19. Mai 2009)

unter vista gibt shutdown /? die Hilfe aus 

das andre traue ich mich grad nicht einzugeben


----------



## Noctarius (20. Mai 2009)

-h würde dann hibernate bedeuten  klingt ja fast schon glaubhaft


----------



## Spacerat (20. Mai 2009)

Wenns gar nicht anders geht, googlen und auf sowas stossen. Frage an mich: Wieso nicht gleich so?
@Noctarius: Nun ist der Fall nicht mehr blos fast glaubhaft, sondern bestätigt.


----------



## Noctarius (20. Mai 2009)

Womit auch die Betriebssystemfrage eindeutig geklärt ist


----------

