Форум: "Сети";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
ВнизПолучение имени пользователя по имени компьютера Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c