AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeit, die der User angemeldet ist

Ein Thema von Ines · begonnen am 19. Jan 2011 · letzter Beitrag vom 12. Jan 2012
Antwort Antwort
Ines

Registriert seit: 22. Aug 2006
Ort: Augsburg
96 Beiträge
 
Delphi 2009 Enterprise
 
#1

AW: Zeit, die der User angemeldet ist

  Alt 20. Jan 2011, 11:23
Hallo,

ich muß Euch nochmals belästigen.

Über LsaGetLogonSessionData bekomme ich die Logon-Zeit als Large_Integer (wußte bisher garnicht, daß es so etwas gibt)

Wie kann ich einen Large_Integer-Wert in ein DateTime umwandeln? Mit der Funktion UnixToDateTime bin ich nicht recht weitergekommen - es kam keine plausible Zeit dabei heraus.

Ich will nur einen Denkansatz oder ein paar Stichworte - keinen fertigen Code.

Viele Grüße
Ines
Ines
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Zeit, die der User angemeldet ist

  Alt 20. Jan 2011, 11:54
Ein TDateTime ist hier glaub ich die falsche Wahl denn der ist für Uhrzeiten + Datum. Wenn du Eine Zeit > 24 Stunden hast gibt es dann Probleme diesen Wert vernünftig anzuzeigen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Ines

Registriert seit: 22. Aug 2006
Ort: Augsburg
96 Beiträge
 
Delphi 2009 Enterprise
 
#3

AW: Zeit, die der User angemeldet ist

  Alt 20. Jan 2011, 12:01
Welches Format oder welche Einheit sind in LogonTime hinterlegt? Sind das Millisekunden?

Liebe Grüße
Ines
Ines
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Zeit, die der User angemeldet ist

  Alt 20. Jan 2011, 12:11
Oh, ich habe Mist geschrieben. Ich bin davon ausgegangen das die die Funktion die Dauer zurück gibt, die der Nutzer bereits eingeloggt ist oder du die Dauer die du errechnest als TDateTime haben willst.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Zeit, die der User angemeldet ist

  Alt 20. Jan 2011, 12:13
Hallo,

soweit ich das verstanden habe hier ist das der echte Zeitpunkt an dem sich der User angemeldet hat. Und das in Differenz zu MSDN-Library durchsuchenGetTickCount64 bzw. MSDN-Library durchsuchenGetTickCount dürfte die dauer sein.
[EDIT] in ms[/EDIT]

Reine Vermutung.

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules

Geändert von ChrisE (20. Jan 2011 um 12:15 Uhr) Grund: Einheit vergessen
  Mit Zitat antworten Zitat
kopernikus

Registriert seit: 8. Feb 2008
19 Beiträge
 
Delphi 10 Seattle Professional
 
#6

AW: Zeit, die der User angemeldet ist

  Alt 21. Okt 2011, 14:35
LogonTime ist die absolute Zeit als UTC (Datum + Tageszeit) im Format TFileTime. Eine Konvertierung in das TDateTime-Format kann mit folgender Routine erfolgen:
Delphi-Quellcode:
{ ------------------------------------------------------------------- }
// convert Filetime to Delphi time (TDateTime)
function FileTimeToDateTime (ft : TFileTime) : TDateTime;
var
  st : TSystemTime;
  dt : TDateTime;
begin
  FileTimeToSystemTime(ft,st);
  with st do begin
    if TryEncodeDate(wYear,wMonth,wDay,Result) then begin
      if TryEncodeTime(wHour,wMinute,wSecond,wMilliseconds,dt) then Result:=Result+dt;
      end
    else Result:=EncodeDate(1980,1,1);
    end;
  end;
  Mit Zitat antworten Zitat
kopernikus

Registriert seit: 8. Feb 2008
19 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: Zeit, die der User angemeldet ist

  Alt 8. Nov 2011, 08:42
Den gesamten Quelltext der Routine zum Abfragen der Sitzungsdaten (SessionData) findet man hier.
  Mit Zitat antworten Zitat
virus82

Registriert seit: 29. Jun 2007
Ort: Leipzig
34 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

AW: Zeit, die der User angemeldet ist

  Alt 7. Jan 2012, 20:12
Ich habe gerade auch ein Problem mit der Logon Zeit. Und zwar wenn sich ein User mehrmals am system an- und abmeldet tauchen seine Session in LsaEnumerateLogonSessions mehrmal auf. Alle mit der gleichen Session ID. Wie kann ich die richtige herausfiltern?

Hier wird mein Prolem nochmal geschildert. http://www.delphipraxis.net/165575-l...liste-aus.html

Man kann es auch im Bild erkennen. User Test ist hier gerade nicht angemeldet, aber wenn er es wäre würde bei allen Einträgen das gleiche stehen. Welcher Eintrag ist der richtige?
Angehängte Grafiken
Dateityp: jpg Console_User_Test.jpg (74,6 KB, 22x aufgerufen)
Marco

Geändert von virus82 ( 7. Jan 2012 um 20:14 Uhr)
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
637 Beiträge
 
Delphi XE6 Enterprise
 
#9

AW: Zeit, die der User angemeldet ist

  Alt 10. Jan 2012, 10:08
Den gesamten Quelltext der Routine zum Abfragen der Sitzungsdaten (SessionData) findet man hier.
Wo holst Du da die ganzen Typen (z.B. TSecurityLogonType, TWTSQuerySessionInformation) her?
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:06 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