是否有命令可以在 java 的 Windows 上使用以使计算机进入睡眠状态?
问问题
7419 次
6 回答
9
如果您的 java 应用程序有足够的权限,您可以通过执行 shell 命令来执行此操作。命令是...
Runtime.getRuntime().exec("Rundll32.exe powrprof.dll,SetSuspendState Sleep");
此处显示了该命令和其他命令。
于 2009-09-02T17:48:22.827 回答
6
任何建议 rundll32 的人都应该被枪杀,很少有函数被设计为由 rundll32 调用,而 SetSuspendState不是其中之一。您将获得随机行为(休眠与待机和强制与非强制等)有关更多详细信息,请参阅此博客条目。
于 2009-09-02T20:05:28.337 回答
6
我目前使用https://github.com/twall/jna解决了这个问题。有关来自http://www.pinvoke.net/default.aspx/powrprof.SetSuspendState的调用的信息
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");
}
}
调用它而不是 with WindowsSuspend.SetSuspendState(false, false, false)
。
于 2013-02-12T18:46:30.980 回答
0
于 2009-09-02T17:46:25.310 回答
0
一个更复杂的方法,但您可以使用ProcessBuilder
创建一个 shell 脚本(.sh
或.bat
)并执行它。
于 2020-08-04T20:57:02.553 回答