2009-09-02 4 views
0

Ich arbeite an Code, der den Bildschirmschoner durch die Benutzereinstellungen definiert starten soll. (Der Code ist in Java, wird aber nur unter Windows ausgeführt.) Mein aktueller Ansatz besteht darin, den ScreenSaveTimeOut-Wert in der Registrierung auf 1 festzulegen. Theoretisch sollte das den Bildschirmschoner nach einer Verzögerung von nur einer Sekunde einschalten.Wie programmiere Windows Bildschirmschoner Registry-Einstellungen programmierbar

Aber in der Praxis tut es so etwas nicht. Ich habe die Werte in HKEY_CURRENT_USER \ Control Panel \ Desktop \ ScreenSaveTimeOut und HKEY_USERS.DEFAULT \ Control Panel \ Desktop \ ScreenSaveTimeOut ohne Ergebnisse getroffen. Ich kann sehen, dass sich die Werte ändern, wenn ich regedit starte, aber der Wert "Warten" unter Eigenschaften von Anzeige -> Bildschirmschoner ändert sich nicht.

Ein Experte-Austausche Thread angegeben, ich sollte dies tun, um die Änderungen sofort wirksam zu machen:

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

... aber das scheint nichts zu tun.

Irgendwelche Ratschläge oder Einblicke in was ich falsch mache?

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

Oder ich nicht viel sagen kann, wie:

Antwort

3

die Bildschirmschoner zu aktivieren, Sie könnten es nur auszuführen, um die .scr-Datei mit einem ‚/ s‘ Parametern, wie so leichter finden Um dies von Java zu tun, aber wenn Sie die Funktionen in user32.dll aufrufen können Sie den Bildschirmschoner wie ein Endbenutzer steuern. Hier sind ein paar Links:

(schließlich gibt es die .NET-Methode, aber auch hier habe ich keine Ahnung, wie man das von Java: http://zayko.net/post/C-How-To-Disable-Windows-Screensaver-programmatically.aspx)

+0

Ich würde das Gleiche vorschlagen. Gibt es einen Grund, warum Sie die Registrierungseinstellungen ändern müssen, Blair? – JasCav

+0

+1 für das Raten meines Planes B. :-) Jason, ich brauche das nicht, ich suche nur nach der elegantesten Lösung. Wenn ich mit diesem Ansatz fortfahre, muss ich auch eine simulierte Mausbewegung einprogrammieren, um zu verhindern, dass der Bildschirmschoner aufleuchtet, wenn ich es nicht will. Das ist ziemlich machbar, nur ein bisschen hack-y für meinen Geschmack. Herumspielen mit ScreenSaveTimeOut (und möglicherweise ScreenSaveActive - ich weiß nicht, dass ich das tun muss, da ich denke, dass ScreenSaveTimeOut = 0 den Bildschirmschoner deaktiviert), fiel mir auf, dass ich weniger bewegliche Teile habe. – BlairHippo

+0

Niemals habe ich das wirklich herausgefunden, also bin ich mit Plan B gegangen. Möge auch ein Häkchen dafür ausstellen. :-) – BlairHippo

Verwandte Themen