Einzelnen Beitrag anzeigen

DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
439 Beiträge
 
Delphi 12 Athens
 
#7

AW: Zeit seit dem letzten Aufwachen aus dem Suspend-Modus ermitteln

  Alt 4. Jul 2015, 15:46
Erstmal vielen Dank für den Tipp. Irgendwie scheine ich mit CallNtPowerInformation allerdings auf Kriegfuß zu stehen, folgenden Code habe ich bisher:

Delphi-Quellcode:
type
     function CallNtPowerInformation(InformationLevel: DWORD; InPutBuffer: Pointer; InputBufferSize: ULONG; OutPutBuffer:
                                     Pointer; OutPutBufferSize: ULONG): DWORD; stdcall; external 'PowrProf.dll';

     POWER_INFORMATION_LEVEL = (AdministratorPowerPolicy, LastSleepTime, LastWakeTime,
       ProcessorInformation, ProcessorPowerPolicyAc,
       ProcessorPowerPolicyCurrent, ProcessorPowerPolicyDc, SystemBatteryState, SystemExecutionState, SystemPowerCapabilities,
       SystemPowerInformation, SystemPowerPolicyAc, SystemPowerPolicyCurrent, SystemPowerPolicyDc, SystemReserveHiberFile,
       VerifyProcessorPowerPolicyAc, VerifyProcessorPowerPolicyDc, VerifySystemPolicyAc, VerifySystemPolicyDc);

function get_time_since_last_wakeup : string;
var Status : DWord;
    lastWakeTime : Pointer;
begin
  Result:='unbekannt';

  lastWakeTime:=nil;
  lastWakeTime:=AllocMem(SizeOf(POWER_INFORMATION_LEVEL));

  try
    Status:=CallNtPowerInformation(14, nil, 0, lastWakeTime, sizeof(UINT64));
    if Status = 0 {STATUS_SUCCESS} then
    begin
      {hier müsste ich irgendwie an die Aufwachzeit bzw. noch besser, die Zeitspanne seit dem letzten aufwachen herankommen}
    end;
  Finally
    FreeMem(lastWakeTime);
  end;
end;
Devid
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  Mit Zitat antworten Zitat