0

ユーザー設定で定義されたスクリーンセーバーを起動することになっているコードに取り組んでいます。(コードはJavaですが、Windowsでのみ実行されます。)現在のアプローチは、レジストリのScreenSaveTimeOut値を1に設定することです。理論的には、1秒の遅延でスクリーンセーバーが起動するはずです。

しかし実際には、そのようなことはしません。HKEY_CURRENT_USER \ Control Panel \ Desktop\ScreenSaveTimeOutとHKEY_USERS.DEFAULT\Control Panel \ Desktop \ ScreenSaveTimeOutの両方の値をヒットしましたが、結果はありません。regeditを起動すると値が変化するのを確認できますが、[表示のプロパティ]->[スクリーンセーバー]の[待機]の値は変化しません。

Experts-Exchangeスレッドは、変更をすぐに有効にするためにこれを行う必要があることを示しました。

%SystemRoot%\ System32 \ RUNDLL32.EXE user32.dll、UpdatePerUserSystemParameters

...しかし、それは何もしなかったようです。

私が間違っていることについてのアドバイスや洞察はありますか?

4

1 に答える 1

5

スクリーンセーバーをアクティブにするには、次のように「/s」パラメータを指定して.SCRファイルを実行する方が簡単な場合があります。

C:\WINDOWS\system32\ssstars.scr /s

または、Javaからこれを行う方法についてはあまり言えませんが、user32.dllの関数を呼び出すことができれば、エンドユーザーのようにスクリーンセーバーを制御できます。ここにいくつかのリンクがあります:

(最後に、.NETメソッドがありますが、Javaからそれを取得する方法がわかりません:http://zayko.net/post/C-How-To-Disable-Windows-Screensaver-programmatically.aspx

于 2009-09-02T20:03:17.343 に答える