Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: RtlTimeToTimeFields im Usermode möglich?

  Alt 6. Dez 2007, 20:05
Delphi-Quellcode:
type TTimefield=packed record
       Year:word;
       month:word;
       day:word;
       hour:word;
       minute:word;
       second:word;
       milliseconds:word;
       weekday:word;
end;
var lib:hmodule;
    TimeToTimeField:procedure(var time:int64;var timefield:TTimeField);stdcall;
    QuerysystemTime:procedure(var time:int64);stdcall;
    systime:TSystemTime;
    timefield:TTimeField;
    time64:int64;
begin
  lib:=getmodulehandle('ntdll');
  TimeToTimeField:=getprocaddress(lib,'RtlTimeToTimeFields');
  QuerySystemTime:=getprocaddress(lib,'NtQuerySystemTime');


  //Variante 1
  Querysystemtime(time64);
  TimeToTimeField(time64,timeField);
  showmessage(inttostr(TimeField.Day)+'.'+
              inttostr(TimeField.Month)+'.'+
              inttostr(TimeField.Year)+#13#10+
              inttostr(TimeField.Hour)+':'+
              inttostr(TimeField.Minute)+':'+
              inttostr(TimeField.Second)+'.'+
              inttostr(TimeField.Milliseconds)+#13#10+
              inttostr(TimeField.Weekday));


  //Variante 2
  DateTimeToSystemTime(now,systime);
  showmessage(inttostr(systime.wDay)+'.'+
              inttostr(systime.wMonth)+'.'+
              inttostr(systime.wYear)+#13#10+
              inttostr(systime.wHour)+':'+
              inttostr(systime.wMinute)+':'+
              inttostr(systime.wSecond)+'.'+
              inttostr(systime.wMilliseconds)+#13#10+
              inttostr(systime.wDayOfWeek));
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat