Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Регистрация пользователя в Windows 2k (XP) [D5, D6, Win2k, WinXP]


And_ ©   (2002-09-06 10:42:00) 

Не подскажет ли кто-нибудь, как можно отловить регистрацию пользователя в Win (при этом нужно узнать его логин и время входа)? Интересны как интерактивный вход, так и сетевой.
Спаибо!


Ales   (2002-09-09 10:16:00) [1]

Есть такая штука: "Winlogon notification package"
Т.е. пишется dll которая ловит эти события путем прописывания наименований експортируемых функций в реестр. Пример функции:

procedure GNWLEventLogOn (pInfo: PWLX_NOTIFICATION_INFO); stdcall;
begin
// Твой код.
end;


Вот что в реест: (пример:)
------------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\gnotify]
"Logon"="GNWLEventLogOn"
"Impersonate"=dword:00000001
"Asynchronous"=dword:00000001
"Safe"=dword:00000001
"DllName"="gnotify.dll"
"Logoff"="GNWLEventLogOff"
----------------------------------------
Только вот сейчас ломаю голову почему из этой функции BroadcastSystemMessage не срабатывает, вот что беспокоит.

ЗЫ Вот еще чего может понадобиться:

//
// Non-GINA notification DLLs
//

type
TFNMsgECallback = function(bVerbose: BOOL; lpMessage: LPWSTR): DWORD; stdcall;
PFNMSGECALLBACK = TFNMsgECallback;
{$EXTERNALSYM PFNMSGECALLBACK}

type
PWlxNotificationInfo = ^TWlxNotificationInfo;
PWLX_NOTIFICATION_INFO = PWlxNotificationInfo;
{$EXTERNALSYM PWLX_NOTIFICATION_INFO}
_WLX_NOTIFICATION_INFO = record
Size : ULONG;
Flags : ULONG;
UserName : PWideChar;
Domain : PWideChar;
WindowStation : PWideChar;
hToken : THandle;
hDesktop : HDESK;
pStatusCallback: TFNMsgECallback;
end;
{$EXTERNALSYM _WLX_NOTIFICATION_INFO}
TWlxNotificationInfo = _WLX_NOTIFICATION_INFO;
WLX_NOTIFICATION_INFO = _WLX_NOTIFICATION_INFO;
{$EXTERNALSYM WLX_NOTIFICATION_INFO}

PSPS Эх, хочу добить свою проблему и статью что-ли написать, т.к. вопрос довольно часто встречается.


Игорь Шевченко   (2002-09-06 12:26:00) [2]

And_ © (06.09.02 12:09)

А данные Audit"a собрать и положить в "БД на сервер" ?


And_   (2002-09-06 12:09:00) [3]

Аудит - это неинтересно, поскольку данные должны собираться с нескольких машин и хранится в БД на сервере.


Игорь Шевченко   (2002-09-06 12:03:00) [4]

Audit не поможет (Local policy) ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо