C# Energieoptionen überschreiben.

roker002

Commander
Registriert
Dez. 2007
Beiträge
2.075
Mir ist es eigentlich egal ob es C# oder C++ ist. Ich möchte halt ein eigenes Programm schreiben was mir erlaubt die energieoptionen zu ändern.

Es ist halt so, arbeite ich zuhause, so muss ich einige optionen in der energieverwaltung umstellen. Habe ich freizeit und will zocken, so muss ich wieder an die energieoptionen ran um mehr saft aus der GraKa zu pressen (halt Win 7/Vista wo man auch sparoptionen für GraKa hat.).

Leider habe ich keine ahnung wie ich diese Einstellungen manipulieren kann. Ich habe ein miniprogramm gesehen dass die Energieoptionen ändern kann per mausklick an der symbolleiste aber ich will auch erweiterte einstellungen benutzen, was bei dem programm nicht vorhanden war.

Kann jemand ein Tipp geben wie ich an den Energiemodus manipulieren kann? Google hat recht wenig was gebracht...
 
Wie wäre es mit Linksklick auf den Akkuzustandsicon rechts unten im Tray, dann auf "Weiter Optionen". Nun hast du 3 Optionen "Energie sparen" zum Arbeiten "Ausbalanciert" für Multimedia und "Höchstleistung" für Spiele.
Diese 3 kannst du nach belieben einstellen, wenn du auf "Energiespareinstellungen" unter dem jeweiligem Auswahlpunkt klickst und dann auf "erweiterte Energieeinstellungen ändern" und kannst dir deine Einstellungen nach belieben einstellen. Dann brauchst du eben nur zwischen den Optionen hin und her springen.
 
hab den icon net... keine ahnung wie man den anzeigen lassen kann. Wenn man einen laptop hat dann hat man halt dieses zeichen.
 
ich habe eine methode gefunden womit man den PC auf standby setzen kann.

Code:
private void button1_Click(object sender, EventArgs e)
{
    SetSuspendState(PowerState.Suspend, false, false);
}
[DllImport("powrprof.dll")]
private static extern bool SetSuspendState(PowerState state, bool ForceCritical, bool DisableWakeEvent);

kann man eventuell eine komplette klasse des powrcprof.dll laden? wenn ich jetzt rumprobieren muss was alles so drinne ist, wird es extrem lange dauern bis ich alles verstanden habe was wie funktioniert.

hab die liste im netz gefunden was alles drinne ist...

CallNtPowerInformation
CanUserWritePwrScheme
DebugPrintA
DeletePwrScheme
EnumPwrSchemes
GetActivePwrScheme
GetCurrentPowerPolicies
GetPwrCapabilities
GetPwrDiskSpindownRange
IsAdminOverrideActive
IsPwrHibernateAllowed
IsPwrShutdownAllowed
IsPwrSuspendAllowed
LoadCurrentPwrScheme
MergeLegacyPwrScheme
ReadGlobalPwrPolicy
ReadProcessorPwrScheme
ReadPwrScheme
SetActivePwrScheme
SetSuspendState
ValidatePowerPolicies
WriteGlobalPwrPolicy
WriteProcessorPwrScheme
WritePwrScheme

EDIT: wie kann ich z.b. energiezufuhr für PCI-E brücke über diese DLL regeln? also im win selbst kann man auch bestimmten ob man energiesparmodus für PCI-E durchführen kann.


hab mir einige der beispiele angeschaut... sieht so aus als ob es nur um die kontrolle der Powe Buttons geht. also ausschaulten stand by modus usw... ich will ehe die Energieoptionen regeln.


EDIT2: OMG wenn ich da denn Code anschauen was alles gebraucht wird... ohne einen echten Import in die referenz wird man da stundenlang sitzen müssen num um die ganzen structs zu schreiben. das ist ja feuchtbar!
 
Zuletzt bearbeitet:
@Blitzmerker

In einen C# Projekt kann ich aber keine Header Dateien hinzufügen. Muss dann wohl auf C++ umsteigen!

Übrigens... ich habe ein fertiges Programm gefunden was die Einstellungen neukonfigurieren kann.

Hier kann man über den ganzen Code drübergehen. Hmm muss mir genauer anschauen was da alles gibt!
 
ich habe jetzt selbst versucht die powrprof.dll und lib zu adden aber diese sind keine Com componente, also kann man die nicht so einfach ins projekt einspielen.

ich habe mir den Header genauer angeschaut... zumindest sieht dieser vollständig aus!
hmm bin ziemlich eingerostet in C++... son mist
 
Zuletzt bearbeitet:
muss man ja alles zusammen suchen was man braucht was nicht!
 
ich habe jetzt ein kleines Programm zusammengestellt was die energieeinstellungen ändern und anzeigen kann.

zum glück musste ich die gesammten structs nicht verwenden. naja vielleicht wenn man das programm erweitern will muss man das auch tun.

Dieses Programm basiert auf WinForm (ohne sichbares Fenster) das in Tray den status der energieeinstellungen anzeigen kann.

Linke mausetaste klick auf Tray welchelt auf den nächsthöheren energiemodus (oder auf den ersten falls man schon bei Höchstleistung ist). Mit der rechte Maustaste kann man ein Menü aufrufen dass das Programm beenden lassen kann oder manuell die energieeinstellung wechseln kann.


Tja, ich werde noch weiter daran basteln dieses Programm soweit zu erweitern dass man auch auf erweiterte Optionen zugreifen kann.


Für alle die das Programm benutzen willen... ihr braucht min Win Vista.

die laufzeit kann noch verbessert werden. Der Code ist auch bisschen dreckig geschrieben :P

Wenn jemand einen Sourcecode haben will kann ich diesen zur verfügung stellen. Die datei hier ist nur kompilierte binary
 

Anhänge

Zuletzt bearbeitet:
Binary-only Kram aus nicht vertrauenswürdiger Quelle würd ich nun nicht einfach so starten. :/
 
so wenn du willst wie gesagt der quellcode mit der gesamte projektmappe.


Wenn jemand die funktionen zur kontrolle von PCI-E energiezufuhr eventuell selbst eingebaut hat, bitte den code auch Posten!
 

Anhänge

Zuletzt bearbeitet:
Hmm was solln das sein? Das Form wird versteckt und wenn man es sich anzeigen lässt sind keinerlei Buttons bzw möglichkeiten mit der GUI zu interagieren vorhanden? Ich hab Windows 7.
 
Zurück
Oben