Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.12.12;
Скачать: [xml.tar.bz2];

Вниз

узнать время начала сессии пользователя..   Найти похожие ветки 

 
istok   (2010-09-20 11:00) [0]

как узнать время логона юзера?  (gettickcount возвращает время старта винды а не сессии...)


 
12 ©   (2010-09-20 11:13) [1]

LsaGetLogonSessionData


 
istok   (2010-09-20 15:19) [2]

спасибо,
никак не могу получить LogonId: PLUID, не хочется делать полную энумирацию, если у меня уже есть sessionid - его в LogonId никак не конвертнуть?


 
12 ©   (2010-09-20 16:01) [3]


> если у меня уже есть sessionid

откуда и как взялось?


> его в LogonId никак не конвертнуть?

формально совпадает если - прочему бы и нет :)


 
12 ©   (2010-09-20 16:16) [4]

не могу найти пример уже, наверное погиб смертью храбрых при смене компа

JEDI можно раскопать/погуглить, там как -то проще все это описано/импортировано было, что-то нужно было как-то сделать и не составило труда, помнится


 
istok   (2010-09-20 17:10) [5]

с LogonId разобрался, заюзал всё же enum...

но вот незадача - как sessionData.LogonTime прочитать...     т.е. я понимаю что .QuadPart это int64.. но  как это дело в tdatetime превратить правильно?


 
sniknik ©   (2010-09-20 17:47) [6]

> но  как это дело в tdatetime превратить правильно?
что значит "превратить правильно"? один 64бита, другой 64 бита... простое привидение типа, туда обратно значение не испортит ("превратит" и "разпревратит"), но разве ж это правильно?

посмотри в док, что за значение эта переменная представляет, тогда уж и будешь думать как преобразовать.


 
12 ©   (2010-09-20 17:48) [7]

да, по-хитрому, поищите в конфе борланда, кто-то писал


 
istok   (2010-09-20 18:22) [8]

сделал.. через filetime:

  ft: TFileTime;
  st: TSystemTime;
  dt: TDateTime;

...
                 ft.dwLowDateTime := sessionData.LogonTime.LowPart;
                 ft.dwHighDateTime := sessionData.LogonTime.HighPart;

                 FileTimeToSystemTime(ft, st);
                 dt := EncodeDateTime(st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);


только время показывает на 4 часа раньше чем надо) а у меня gmt+3...


 
sniknik ©   (2010-09-20 19:44) [9]

> только время показывает на 4 часа раньше чем надо) а у меня gmt+3...
ты, что время с момента логина юзера по Гринвичу считаешь??? при чем тут это?

типа пришел на работу и залогинился 10 мин назад, но по Гринвичу... проработал уже 3 ч. 10 мин. .... клево.


 
istok   (2010-09-20 19:51) [10]

а кто сказал что я по гринвичу считаю..   я просто говорю что полученное время отстает от реального на 4 часа. и к сведению сообщаю что моя зона  - gmt+3 (мало ли, вдруг скажете что у меня наверно gmt+4 и надо 4 прибавлять..)


 
Anatoly Podgoretsky ©   (2010-09-20 19:54) [11]

> istok  (20.09.2010 19:51:10)  [10]

Для информации
В мире кроме часового пояса еще есть и летнее время.


 
istok   (2010-09-20 19:56) [12]

о, а каким методом стабильно конвертить это время в своё локальное?


 
istok   (2010-09-20 21:29) [13]

вопрос решен, всем спасибо):

function GMTToLocalTime(GMTTime: TDateTime): TDateTime;
var
 GMTST: Windows.TSystemTime;
 LocalST: Windows.TSystemTime;
begin
  SysUtils.DateTimeToSystemTime(GMTTime, GMTST);
  SysUtils.Win32Check(Windows.SystemTimeToTzSpecificLocalTime(nil, GMTST, LocalST));
  Result := SysUtils.SystemTimeToDateTime(LocalST);
end;


 
Anatoly Podgoretsky ©   (2010-09-21 09:30) [14]

> istok  (20.09.2010 19:56:12)  [12]

Из справки!

UTC = local time + bias



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.12.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
3-1249327055
DmitrichJ
2009-08-03 23:17
2010.12.12
Организация поиска по документам в БД


2-1284621331
JohnKorsh
2010-09-16 11:15
2010.12.12
Можно ли средствами Delphi создать WiFi Ad-Hock сеть?


15-1283776650
12
2010-09-06 16:37
2010.12.12
Что-то не понимаю tDateTime и Variant, раньше работало или путаю?


15-1282803046
xayam
2010-08-26 10:10
2010.12.12
Модераторам/администраторам


15-1283286578
Юрий
2010-09-01 00:29
2010.12.12
С днем рождения ! 1 сентября 2010 среда





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский