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

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

Как получить имя текущего пользователя в NT сервисе [D6, Win2k, WinXP]


Bobr ©   (2002-01-14 17:50:00) 

Как получить имя текущего пользователя в NT сервисе (т.е. того который сейчас работает в системе 2000, XP). GetUserName возвращает имя пользователя от которого стартован сервис, а мне нужно знать кто сейчас работает в системе?


bobr   (2002-01-17 15:07:00) [1]

Увы и ах, например я вхожу как "bobr", сервис стартован под SYSTEM, и естественно GetUserName возвратит SYSTEM. А мне надо получить именно того, кто вошел в систему (активен на данный момент, т.е. "bobr")


Crowned   (2002-01-17 11:12:00) [2]

Выкинь лишнее из этой процедурки, мне лень...
procedure TForm1.HardwareInfo(var ComputerName,UserName,ProcessorType,NumberOfProcessors :string);
var
Size : cardinal;
PRes : PChar;
BRes : boolean;
lpSystemInfo : TSystemInfo;
begin
// Имя компьютера
Size := MAX_COMPUTERNAME_LENGTH + 1;
PRes := StrAlloc(Size);
BRes := GetComputerName(PRes, Size);
if BRes then ComputerName := StrPas(PRes);
// Имя пользователя
Size := MAX_COMPUTERNAME_LENGTH + 1;
PRes := StrAlloc(Size);
BRes := GetUserName(PRes, Size);
if BRes then UserName := StrPas(PRes);
// Процессор
GetSystemInfo(lpSystemInfo);
// ProcessorType := IntToStr(lpSystemInfo.dwProcessorType);wProcessorArchitecture
ProcessorType := IntToStr(lpSystemInfo.dwProcessorType);
NumberOfProcessors :=IntToStr(lpSystemInfo.dwNumberOfProcessors);
end;


Наверх

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