Главная страница
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.47 MB
Время: 0.017 c
1-2138
pasha_golub
2004-01-19 14:20
2004.02.02
Взаемодействие Делфи 6 и CorelDraw 11


1-2092
Марат
2004-01-19 14:37
2004.02.02
HotKey


1-2118
Dysan
2004-01-19 17:18
2004.02.02
номер версии


3-2019
Paster
2004-01-06 16:09
2004.02.02
Тригеры


14-2278
Centurion
2004-01-09 16:30
2004.02.02
монаж видео