2

コンピューターをスリープ状態にするために Java から Windows で使用するコマンドはありますか?

4

6 に答える 6

9

Javaアプリに十分な権限がある場合は、シェルコマンドを実行することでそれを行うことができます。コマンドは...

Runtime.getRuntime().exec("Rundll32.exe powrprof.dll,SetSuspendState Sleep");

そのコマンドとその他のコマンドをここに示します

于 2009-09-02T17:48:22.827 に答える
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");
  }
}

よりも呼び出しWindowsSuspend.SetSuspendState(false, false, false)ます。

于 2013-02-12T18:46:30.980 に答える
6

rundll32 を撃つべきだと提案する人は誰でも、rundll32 によって呼び出されるように設計された関数はほとんどなく、SetSuspendState はその 1 つではありません。ランダムな動作が得られます (休止状態とスタンバイ、強制と非強制など) 。詳細については、このブログ エントリを参照してください

于 2009-09-02T20:05:28.337 に答える
0

いいえ。 経由で別のバイナリを実行する必要がありますRuntime.exec()

この記事は提案します

rundll32 Powrprof.dll,SetSuspendState 

しかし、私はそれを試していません。

于 2009-09-02T17:46:25.310 に答える
0

OnNow/ACPI Support hereを参照してください。

ここでそれについて話している古い SO 投稿もあります。 おそらくあなたが望むものの逆です。しかし、いくつかの手がかりを与えるかもしれません。

于 2009-09-02T17:47:08.770 に答える