So ich bekomme die Sekunden die seit obigen Datum verstrichen sind. Jetzt würde ich gerne diese in ein gescheites Datum umrechnen.
Für ersteres habe ich schon einen Ansatz:
Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
const
TAB = #9;
var
sUser : String;
ui11 : Pointer;
ft : TFILETIME;
st : TSYSTEMTIME;
ui : ULARGE_INTEGER;
buf1, buf2 : array[0..255] of Char;
begin
st.wYear := 1970;
st.wMonth := 1;
st.wDayOfWeek := 0;
st.wDay := 1;
st.wHour := 0;
st.wMinute := 0;
st.wSecond := 0;
st.wMilliseconds := 0;
SystemTimeToFileTime(st,ft);
ui.QuadPart := PUserInfo11(ui11)^.usri11_last_logon+ULARGE_INTEGER(ft).QuadPart;
FileTimeToSystemTime(TFileTime(ui),st);
GetTimeFormat(LOCALE_USER_DEFAULT, TIME_FORCE24HOURFORMAT, @st, nil, buf1, sizeof(buf1));
GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, @st, nil, buf2, sizeof(buf2));
Memo1.Lines.Add('Last-Logon'+TAB+': '+String(buf2)+' / '+String(buf1) );
end;
NetAPIBufferFree(ui11);
end;
Nur leider stimmt das:
Zitat:
Last-Logon : 1970-01-01 / 00:01:44
nicht. Da war ich noch nicht mal geboren, geschweige denn dass ich mich da schon an meinem jetztigen Rechner eingeloggt hätte.