https://stackoverflow.com/a/7457150
Auf der verlinkten Seite von Microsoft stehen zwar die Funktionen, aber nicht, wie ich diese anwenden muss. Keine Beispiele, nix.
https://learn.microsoft.com/de-de/windows/win32/power/power-management-functions?redirectedfrom=MSDN
Im Git-Repository gibt es zwar unter anderem eine Demo-App unter source/Samples/PowerMgmtDemo/CS/, aber mit der kann ich nichts anfangen und in der Hilfedatei unter documentation/Windows API Code Pack Help.chm gibt es zwar ein Inhaltsverzeichnis, aber wenn man sich da durch klickt erscheint im rechten Fenster kein Inhalt.
Generell soll das API-Code-Pack mächtig und hilfreich sein, so dass sich das wohl echt lohnt die Funktionen da drin zu kennen und anwenden zu können.
Vielleicht noch als Randnotiz:
Ich habe bereits funktionierenden Code, aber der funktioniert nur, wenn die Anwendung explizit als Administrator aufgerufen wird. (Mit Adminrechten am System angemeldet zu sein reicht nicht. Gbit eine Exception)
public static string GetSystemEnergySettingState()
{
var searcher = new ManagementObjectSearcher(@"\\.\root\cimv2\power", "SELECT * FROM Win32_PowerPlan WHERE IsActive = True");
using ManagementObjectCollection managementObjectCollection = searcher.Get();
ManagementObject managementObject = managementObjectCollection.OfType<ManagementObject>().First();
string SystemEnergySettingState = managementObject["ElementName"].ToString() ?? "Default";
return SystemEnergySettingState;
}
Das gleiche Problem hatte ich mal, als ich auslesen wollte, ob Bitlocker aktiviert ist oder nicht. Damals bin ich dann auf den verlinkten Code, basierend auf dem Windows-API-Code-Pack-1.1 gestoßen, den ich aber nur kopiert habe. Wie hat der damalige Autor rausgefunden, wie er den Code schreiben muss? Wie geht man sowas an?
https://stackoverflow.com/a/41310139