Registriert seit: 7. Sep 2006
Ort: Berlin
439 Beiträge
Delphi 12 Athens
|
AW: Zeit seit dem letzten Aufwachen aus dem Suspend-Modus ermitteln
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;
|
|
Zitat
|