AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi energiesparplan unter vista ändern
Thema durchsuchen
Ansicht
Themen-Optionen

energiesparplan unter vista ändern

Ein Thema von Admirandis · begonnen am 12. Okt 2008 · letzter Beitrag vom 19. Jun 2009
 
jDallmeyer

Registriert seit: 29. Nov 2005
34 Beiträge
 
#23

Re: energiesparplan unter vista ändern

  Alt 8. Mär 2009, 14:31
Gude,

ich bin etwas weitergekommen, stehe nun aber wieder vor ner Wand... Mein altes Problem konnte ich beheben, indem ich einen Zeiger auf die Speicheradresse der TGUID im Funktionsaufruf verwendet habe.

Ich lade folgende Funktionen:
Delphi-Quellcode:
{$EXTERNALSYM PowerSetActiveScheme}
function PowerSetActiveScheme(UserRootPowerKey: HKEY; const SchemeGUID: PGUID):
  DWORD; stdcall; external PWR_PROF;
{$EXTERNALSYM PowerEnumerate}
function PowerEnumerate(UserRootPowerKey: HKEY; const SchemeGuid: PGUID;
  const SubGroupOfPowerSettingGuid: PGUID; AccessFlag: POWER_DATA_ACCESSOR;
  Index: ULONG; Buffer: PUCHAR; BufferSize: PDWORD):
  DWORD; stdcall; external PWR_PROF;
{$EXTERNALSYM PowerGetActiveScheme}
function PowerGetActiveScheme(UserRootPowerKey: HKEY; Buffer: PGUID): DWORD;
  stdcall; external PWR_PROF;
{$EXTERNALSYM PowerReadDescription}
function PowerReadDescription(UserRootPowerKey: HKEY; const SchemeGuid: PGUID;
  const SubGroupOfPowerSettingGuid: PGUID; const PowerSettingGuid: PGUID;
  Buffer: PUCHAR; BufferSize: PDWORD):
  DWORD; stdcall; external PWR_PROF;
{$EXTERNALSYM PowerReadDescription}
function PowerReadFriendlyName(RootPowerKey: HKEY; const SchemeGuid: PGUID;
  const SubGroupOfPowerSettingGuid: PGUID; const PowerSettingGuid: PGUID;
  Buffer: PUCHAR; BufferSize: PDWORD):
  DWORD; stdcall; external PWR_PROF;
In der Listbox lb1 werden die Strings zu den EnergieschemaGUIDS eingetragen. Per Klick auf Button3 wird das markierte Schema ausgewählt (PowerSetActiveScheme) und das funktioniert auch. Ich würde allerdings gern Informationen zu den jeweiligen Schemata erhalten. Die auskommentierten Zeilen mit den Aufrufen von PowerReadDescription und PowerReadFriendlyName liefern als Ergebnis nicht ERROR_SUCCESS. Mache ich irgendwas falsch oder verwende ich die falschen Funktionen? Zusätzlich möchte ich Einstellungen so abändern können, dass der Monitor nicht abgeschaltet wird und der Rechner nicht in den Standby verfällt. Hat sowas schon mal jemand von Euch gemacht?

MfG

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var res, size: DWORD;
    tmp: TGUID;

    function getSel:integer;
    var i : integer;
    begin
      result := 0;
      for i := 0 to lb1.Items.Count-1 do
        if(lb1.Selected[i]) then begin
          result := i;
          break;
        end;
    end;

begin
  size := SizeOf(TGUID);
  active_guid := StringToGuid(lb1.Items[getSel()]);
  //res := PowerReadDescription(0, @active_guid, @NO_SUBGROUP_GUID, nil, @tmp, @size);
  //res := PowerReadFriendlyName(0, @active_guid, nil, nil, @tmp, @size);
  res := PowerSetActiveScheme(0, @active_guid);
  // @active_guid ist ein zeiger auf die speicheradresse von active_guid.
  if res = ERROR_SUCCESS then
    lb1.Items.Add('->'+GUIDToString(active_guid))
  else
    lb1.Items.Add('Fehler -> '+GUIDToString(tmp));
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:14 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