1

スクリーンセーバーのようにJavaコードを使用してモニターの画面ライトをオフにする方法はありますか.ボタンを押すと画面ライトがオフになり、キーまたはマウスを押すとライトが戻ります.

4

3 に答える 3

5

スクリーン セーバーのように Java コードを使用してモニター画面のライトをオフにする方法はありますか。

標準 API を使用したプラットフォームに依存しない方法ではありません。いくつかのシステム固有のコマンドに依存する必要があります。

Linuxボックスでは、たとえば次のことができます

Runtime.getRuntime().exec("xset dpms force off");
于 2012-07-26T11:46:01.643 に答える
4

これは、オペレーティング システムによって既に実装されている機能です。オペレーティング システムとハードウェアに依存する機能に深く結びついているため、純粋な Java で実行するのは困難ですが、C++ では簡単に実行できます。

#include <windows.h>
#include <ctime>

int main() {
  int seconds = 10;
  clock_t delay = seconds *CLOCKS_PER_SEC, start = clock();

  while(clock() - start < delay)
    SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) 2);

  SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) 2);
  return 0;
}
于 2012-07-26T11:58:21.113 に答える
0

これは非常にシステム固有のものです。間違いなくオペレーティングシステム固有であり、おそらくハードウェア固有でもあります。

Java は、この種のことには最適ではありません。おそらく可能ですが、ネイティブ OS ユーティリティを実行するか、ネイティブ コード ライブラリを呼び出す小さな C アプリケーションを作成するなど、より良い方法があります。

于 2012-07-26T11:58:59.603 に答える