Главная страница
    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.003 c
15-1283618602
Programmist
2010-09-04 20:43
2010.12.12
Поздравляем москвичей


11-1226732009
MTsv DN
2008-11-15 09:53
2010.12.12
Работа с LVItemData


15-1283271243
Programmist
2010-08-31 20:14
2010.12.12
С началом учебного года


15-1283856091
бумбум
2010-09-07 14:41
2010.12.12
Резервное копирование базы MS SQL 2000


2-1284811932
Arkadi4
2010-09-18 16:12
2010.12.12
hint со значением ячеек gbrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский