Dormez Windows à partir de Java
Question
Y at-il commande à utiliser sur les fenêtres de java pour rendre le sommeil ordinateur?
La solution
Vous pouvez le faire en exécutant une commande shell, si vous application java assez de droits a pour le faire. La commande est ...
Runtime.getRuntime().exec("Rundll32.exe powrprof.dll,SetSuspendState Sleep");
Ce et d'autres commandes sont affichés ici .
Autres conseils
Toute personne suggérant rundll32 devrait être tiré, très peu de fonctions sont conçues pour être appelé par rundll32 et SetSuspendState est pas un d'entre eux. Vous aurez un comportement aléatoire (mise en veille prolongée vs veille et forcé vs pas forcé etc) Voir
Je suis actuellement résolu ce problème en utilisant https://github.com/twall/jna . Informations sur l'appel de http://www.pinvoke.net/default.aspx/powrprof. SetSuspendState Appelez-que avec import com.sun.jna.Native;
import com.sun.jna.Platform;
public class WindowsSuspend {
public static native boolean SetSuspendState(boolean hibernate, boolean forceCritical, boolean disableWakeEvent);
static {
if (Platform.isWindows())
Native.register("powrprof");
}
}
WindowsSuspend.SetSuspendState(false, false, false)
.
Non. Vous auriez besoin d'exécuter un binaire séparé par Runtime.exec()
.
rundll32 Powrprof.dll,SetSuspendState
mais je ne l'ai pas essayé.