我正在开发一个小型关机计划程序项目,在该项目中,我必须将计算机置于"Stand By"模式下。我正在使用的命令是
"Stand By"
Runtime.getRuntime().exec("cmd /c Powrprof.dll,SetSuspendState ");
此命令需要管理员权限,我不知道该如何获得。另外,在搜索以前的答案时,我发现我可以elevate.exe用作
elevate.exe
Runtime.getRuntime().exec("c:/elevate Rundll32.exe Powrprof.dll,SetSuspendState ");
Elevate.exe正在执行任务,但正在浪费太多时间,即使软件变慢。还有其他快速方法吗?我正在使用Netbeans IDE。
Elevate.exe
您有几种选择
A.使用admin priv创建快捷方式。
快捷方式将运行 cmd /c Rundll32.exe Powrprof.dll,SetSuspendState
cmd /c Rundll32.exe Powrprof.dll,SetSuspendState
您的Java代码将运行快捷方式:
Runtime rt = Runtime.getRuntime(); rt.exec("cmd /c start \"\" \"myshortcut.lnk\"")
右键单击快捷方式图标>属性>高级>以管理员身份运行
B.以管理员身份运行Java进程
同样,创建一个快捷方式并设置为以管理员身份运行。产生的任何进程也将具有管理员权限。您的Java代码将运行:
rt.exec("cmd /c Powrprof.dll,SetSuspendState")
C.使用JNA直接调用SetSuspendState例程。Java进程将需要admin priv(例如B),但是您不必生成一个进程。如果您愿意,我可以提供源代码。
D. 使用 wizmo实用程序:wizmo quiet standby
wizmo quiet standby