Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.02;
Скачать: CL | DM;

Вниз

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

 
crazycyborg   (2003-11-24 11:41) [0]

Подскажите, как по имени удалённого компьютера узнать имя зарегистрированного на нём пользователя?


 
Andersen   (2003-11-24 13:16) [1]

NetWkstaUserEnum


 
crazycyborg   (2003-11-25 09:40) [2]

А можно подробнее? Или примерчик. А то даже не могу найти модуль в котором эта функция описана (уж простите чайника) ;o).


 
Andersen   (2003-11-25 13:58) [3]

Могу прислать на мыло, но пример на C++. Если нужно - ответь, пришлю.


 
crazycyborg   (2003-11-25 18:41) [4]

Спасибо, Andersen! На C++ тоже устроит, уж очень нужно!!! Так что посылай. Жду на мыле >:o)


 
xShadow ©   (2003-11-26 11:43) [5]


type PUserInfo0 = ^T_User_Info_0;
T_USER_INFO_0 = Record
usri0_name: LPWSTR;
End;

function NetWkstaUserEnum( ServerName: LPCWSTR;
Level: DWORD;
BufPtr: Pointer;
PrefMaxLen: DWORD;
EntriesRead: LPDWORD;
TotalEntries: LPDWORD;
ResumeHandle: LPDWORD ): LongInt; stdcall; external "netapi32.dll";

Function NetApiBufferFree( Buffer: Pointer ): DWORD; stdcall; external "netapi32.dll";

Procedure GetUsers( const Serv: String );
Var Buffer, tmpBuffer: Pointer;
PrefMaxLen : Integer;
Resume_Handle : DWORD;
EntriesRead : DWORD;
TotalEntries : DWORD;
I, Size : Integer;
NickName : String;
PSrvr : PWideChar;
Begin
Users.Clear;
PSrvr := nil;
try
// Переводим имя компьютера типа PWideChar
Size := Length( Serv );
GetMem( PSrvr, Size * SizeOf( WideChar ) + 1 );
StringToWideChar( Serv, PSrvr, Size + 1 );

PrefMaxLen := -1;
EntriesRead := 1;
TotalEntries := 1;
Resume_Handle := 0;
Buffer := nil;

// Получаем список пользователей на компьютере из PSrvr
if NetWkstaUserEnum( PSrvr, 0, @Buffer, PrefMaxLen, @EntriesRead, @TotalEntries, @Resume_Handle) = S_OK Then
Begin
tmpBuffer := Buffer;
For I := 0 To TotalEntries - 1 Do
Begin
NickName := PUserInfo0( tmpBuffer ).usri0_name;
Resume_Handle := 0;
// Выводим список в UsrList типа TListBox
Users.Add( NickName );
tmpBuffer := Pointer( DWORD( tmpBuffer ) + SizeOf( PUserInfo0 ) );
end;
end; {else
showmessage( "GetLastError = " + IntToStr( GetLastError ) );}
finally
NetApiBufferFree( Buffer );
FreeMem( PSrvr );
end;
End;


Собственно готовый привер!


 
crazycyborg   (2003-11-26 15:24) [6]

БОЛЬШОЕ СПАСИБО!!!



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

Текущий архив: 2004.02.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
1-2201
Юрий Ж.
2004-01-20 21:53
2004.02.02
СВОЙ (!!!) упаковщик


14-2277
DenK_vrtz
2004-01-09 09:59
2004.02.02
Может это не скромно, но хочу поделиться своей радостью!


3-2046
dalamar
2004-01-04 00:29
2004.02.02
Как получить количество таблиц в БД Access через ADO подключение?


14-2303
ИдиотЪ
2004-01-12 13:25
2004.02.02
Спящий режим


1-2074
T__Alex
2004-01-20 12:56
2004.02.02
Как програмно определить кодировку текст. файла