# Windows beenden



## snoopay (8. Februar 2004)

Hallo

Ich möchte ein Programm schreiben das Windows mit einem Klick auf einen Buttom herunterfährt.

Kann mir jemsnd sagen wie ich das machen kann?


----------



## tomkruse (8. Februar 2004)

Hi!

Dazu wirst Du JNI benötigen, denn das Herunterfahren von Windows ist eine betriebssystemspezifische Sache, auf die Du aus reinem Java heraus keinen Einfluß hast.

Aber mittels JNI kannst Du alles machen was auch ein C++ Programm darf ;-)

Cu - Tom.


----------



## Thomas Darimont (9. Februar 2004)

Servus!


```
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

/*
 * Created on 09.02.2004
 *
 * To change the template for this generated file go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 */

/**
 * @author ASW
 *
 * To change the template for this generated type comment go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 */
public class Shutdown {

	public static void main(String[] args) {
		new Shutdown().doIt();
	}

	/**
	 * 
	 */
	private void doIt() {
		// TODO Auto-generated method stub
		FileWriter fw = null;
		BufferedWriter bw = null;
		try {
			fw = new FileWriter("c:/shutdown.vbs");
			bw = new BufferedWriter(fw);

			bw.write(
				"set WshShell = CreateObject(\"WScript.Shell\")\r\nWshShell.SendKeys \"^{ESC}^{ESC}^{ESC}{UP}{ENTER}{ENTER}\"\r\n");

			bw.flush();
                                                                bw.close();

			Runtime.getRuntime().exec(
				"cmd /c start /min cscript c:\\shutdown.vbs");

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}
```

Funktioniert prima unter Windows 2000

Gruß Tom


----------



## Fabian (9. Februar 2004)

Was ich jetzt nicht verstehe, warum man das nicht z.B. mit 



> C:\WINDOWS\system32\shutdown.exe -s -t 01



loest? (Als Verknuefpung z.B.)


----------



## Thomas Darimont (9. Februar 2004)

Hi!

... weil das nur bei Windows XP funktioniert ...

Gruß Tom


----------



## Fabian (9. Februar 2004)

Dann halt 





> C:\WINDOWS\RUNDLL32.EXE user,ExitWindows


----------



## Thomas Darimont (9. Februar 2004)

Hi!

Win 2000

c:\winnt\SYSTEM32\RUNDLL32.EXE user,ExitWindows

--->

---------------------------
RUNDLL
---------------------------
Fehler beim Laden von user

Das angegebene Modul wurde nicht gefunden.


---------------------------
OK   
---------------------------

Glaub mir, dass oben mit dieser Shutdown .vbs Lösung ist die einzige Lösung, die auch unter Win 2000 funktioniert ... ohne eine Fremdanwendung wie 
Shutdown.exe (siehe google) zu verwenden.

Gruß Tom


----------



## Fabian (9. Februar 2004)

Wieder was gelernt


----------

