![]() |
CPU-Takt ändern / Energiesparmodus ändern
Hallo,
ich habe einen Windows 2008R2 mit SP1 laufen. Dort laufen auch Programme. Leider verhält sich der Server anders als z.b. Windows 7. Braucht ein Programm Rechenleistung bleibt die CPU bei 1,6GHz anstatt auf 3,4GHz hochzugehen. 4 Tage suche im Internet brachte keine Abhilfe. Außer dem Rat von MS das man den Energiesparmodus auf Hochleistung stellen soll. Dann läuft die CPU IMMER auf 3,4GHz. Nun habe ich mir überlegt, das wenn ich (bzw. ein Tool) merkt das eine Anwendung 25% Last erzeugt, ich entweder den CPU-Takt für einige Zeit auf Maximum stelle oder den Energiesparmodus ändere. Nun zur Frage: Kann man das mit Delphi realisieren? Gibt es eine Art API worüber man eins von beiden einstellen kann? Vielen dank im Voraus |
AW: CPU-Takt ändern / Energiesparmodus ändern
Also direkt in windows glaub ich nicht, das es da was gibt, da sowas i.d.R. übers Bios gesteuert wird.
Lesenderweise kann man aufs Bios zugreifen, wie das schreibend funktioniert muss ich leider passen. So als gedanke wäre evtl. über einen Treiber darauf zu zugreifen. Etl. Hersteller liefern ja Tools und entsprechende Treiber über die man sowas einstellen kann. |
AW: CPU-Takt ändern / Energiesparmodus ändern
Da habe ich leider nix gefunden.
|
AW: CPU-Takt ändern / Energiesparmodus ändern
Vielleicht ist es möglich, den Windows Power-Status per Commandline zu regeln.
Damit entfällt jeglicher benötigter Treiber. |
AW: CPU-Takt ändern / Energiesparmodus ändern
Das wäre eine Idee... Dann suche ich mal danach. Ich kann dann per Delphi die CMD-Line (bzw. eine Batch) aufrufen. Ist zwar eine "Krücke" aber besser als nix.......
|
AW: CPU-Takt ändern / Energiesparmodus ändern
Ich würde es eher als Lösung bezeichnen.
Warum sich den Kopf über irgendwelche Treiber zerbrechen die nach 2 Updates vielleicht nicht mehr kompatibel sind? Da greife ich doch lieber auf das zurück, was das Betriebssystem ohnehin schon mitbringt. |
AW: CPU-Takt ändern / Energiesparmodus ändern
Das stimmt schon. Ich dachte ja am Anfang an eine WindowsAPI womit man das um/einstellen kann. Weil das System ist nicht durchgebootet. Also kein User angemeldet. Das sind 2 Dienste die bissl mehr Leistung haben möchten.
Aber auch wenn ich mich anmelde und lasse ein Programm laufen was die CPU belastet, ändert sich nichts am "Taktverhalten". Gruß |
AW: CPU-Takt ändern / Energiesparmodus ändern
Hat denn hier jemand überhaupt mal nach einer API gesucht?
![]() |
AW: CPU-Takt ändern / Energiesparmodus ändern
Zum Auflisten der Energiesparmodi und deren GUIDs (benötigt für PowerSetActiveScheme):
Code ist natürlich nur schnell runtergetippt und nichts woran man sich unbedingt orientieren sollte :mrgreen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var size: DWORD; name: String; guid: TGUID; result: DWORD; index: Integer; begin index := 0; while true do begin size := SizeOf(TGUID); result := PowerEnumerate(0, TGUID.Empty, TGUID.Empty, Integer(ACCESS_SCHEME), index, @guid, @size); if result = ERROR_SUCCESS then begin SetLength(name, 200); size := Length(name) * SizeOf(Char); result := PowerReadFriendlyName(0, guid, NO_SUBGROUP_GUID, nil, @name[1], @size); if result = ERROR_SUCCESS then ListBox1.Items.Add(Trim(name) + ' (' + guid.ToString + ')') end else break; inc(index); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz