Windows Energiespareinstellung ändern (Sleep-Zeit und Bildschirmausschalt-Zeit)

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Windows Energiespareinstellung ändern (Sleep-Zeit und Bildschirmausschalt-Zeit)

    Hallo Leute,

    ich möchte gerne von meiner Applikation heraus die Zeiteinstellung für Sleep und "Bildschirm dunkel" ändern.

    Gibt es hier eine einfache VB.NET Möglichkeit?

    Oder kann man das relativ einfach mit dem Ändern eines Registry-Wertes machen. Wenn ja, welche Werte wo in der Registry sind da zu ändern?
    Habe schon viel im Netz gesucht, aber nichts gefunden.

    Ziel: Die Applikation soll den Sleep-Timer des Gerätes fix auf x Minuten stellen. Es ist immer nur ein Windows-Benutzer angemeldet.

    LG Roland

    *Topic verschoben*
    Bilder
    • 06062018130157.jpg

      104,94 kB, 678×539, 117 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hallo @dive26,

    soweit ich weiss gibt es im .net-Framework keine möglichkeit darauf zu zu geifen.

    Es gibt aber: msdn.microsoft.com/en-us/libra…op/aa373163(v=vs.85).aspx

    du kannst per DLLImport darauf zugreifen.

    Schau dir das mal an: decatec.de/programmierung/wind…nen-mit-c-sharp-auslesen/
    LG Mausekeks
    Brain is Loading: 35%
    Vielen Dank Mausekeks,

    das wäre genau das was ich gesucht habe.
    Ich habe aber inzwischen eine andere Möglichkeit gefunden, auch wenn diese nicht ganz so "sauber" ist.
    Die Einstellung wird ja auch nur einmalig beim ersten Start der Applikation gemacht:

    VB.NET-Quellcode

    1. ''' <summary>
    2. ''' Setzt die Windows Sleep- und Bildschirm Einstellungen im Akkubetrieb auf 1 Minute
    3. ''' </summary>
    4. ''' <remarks></remarks>
    5. Public Sub AenderePowerStatus()
    6. 'powercfg.exe -change -standby-timeout-dc 1
    7. 'powercfg.exe -change -standby-timeout-ac 0
    8. 'powercfg.exe -change -monitor-timeout-dc 1
    9. 'powercfg.exe -change -monitor-timeout-ac 0
    10. Dim myprocess As System.Diagnostics.Process = New System.Diagnostics.Process()
    11. With myprocess.StartInfo
    12. .FileName = ("powercfg.exe")
    13. .Arguments = "-change -standby-timeout-dc 1"
    14. .CreateNoWindow = True
    15. .RedirectStandardInput = False
    16. .RedirectStandardOutput = False
    17. .RedirectStandardError = False
    18. .UseShellExecute = True
    19. End With
    20. myprocess.Start()
    21. With myprocess.StartInfo
    22. .FileName = ("powercfg.exe")
    23. .Arguments = "-change -standby-timeout-ac 0"
    24. End With
    25. myprocess.Start()
    26. With myprocess.StartInfo
    27. .FileName = ("powercfg.exe")
    28. .Arguments = "-change -monitor-timeout-dc 1"
    29. End With
    30. myprocess.Start()
    31. With myprocess.StartInfo
    32. .FileName = ("powercfg.exe")
    33. .Arguments = "-change -monitor-timeout-ac 0"
    34. End With
    35. myprocess.Start()
    36. End Sub
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    @dive26 Schau auch mal hier vorbei: Standby und Screensaver unterdrücken
    Da kannst Du alles selber schalten.
    Und Standby und Sleep geht so:

    VB.NET-Quellcode

    1. ' Standby:
    2. Application.SetSuspendState(PowerState.Hibernate, false, false)
    3. ' Sleep:
    4. Application.SetSuspendState(PowerState.Suspend, false, false)

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke RodFromGermany,

    das mit dem Application.xxx hatte ich auch gefunden. Jedoch kann man das nur direkt in den Standby oder Hibernate schalten und nicht die Zeitspanne dafür einstellen.

    LG Roland
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    @dive26 Missvereständnis.
    Schau auch mal hier vorbei: Standby und Screensaver unterdrücken
    Da kannst Du alles selber schalten.
    ===
    Undzwar kannst Du verhindern, dass der PC in einen Sparmodus wechselt.
    Und wenn Du feddich bist, machst Du wieder Ausgangslage.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany Missverständnis too ;)

    Ich möchte nicht verhindern, dass der PC in Sparmodus wechselt, sondern die Zeitspanne für "Sleep" fix auf eine Minute stellen. Dabei geht es um eine Mobile Anwendung die so wenig Strom wie möglich verbrauchen soll und daher nach einer Minute Nichtstun schon in den Sleep-Modus fallen soll. Das könnte ich zwar beim Setup des Gerätes auch jedes Mal manuell einstellen, aber wenns 20 Geräte auf einmal sind, dann ist es besser die Applikation stellt alles beim ersten Start richtig ein. Vom Login-Screen bis Energiesparmodus ...
    Bilder
    • 31117415_1718867004859931_363485637766021120_n.jpg

      89,79 kB, 960×540, 147 mal angesehen
    • xploreiii800.jpg

      59,84 kB, 800×439, 94 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    würde ich einfach einen Einzeiler mit powercfg schreiben.


    Das löst aber nicht die anderen Dinge die ich zeitgleich in der Registry ändere ;-).
    Die Anwendung alles automatisch machen zu lassen ist einfacher als bei jeder Lieferung wieder von neuem zu schauen wo was am Betriebssystem einzustellen ist. ;)
    Effizienz und Zeitersparnis eben.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at