Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.015 c
1-2140
Ландграф Павел
2004-01-18 14:53
2004.02.02
Запись TStringList в TFileStream


14-2297
}|{yk
2004-01-12 16:33
2004.02.02
Вопросы из харьковского ЧГК. №4


3-2040
HolyMan
2004-01-04 00:20
2004.02.02
Проблема с чтением из BLOB поля в стрим...


1-2231
man
2004-01-19 19:49
2004.02.02
как получить список процессов, которые используют данный файл


1-2158
Vinter
2004-01-21 12:13
2004.02.02
как разом все настройки одной компоненты передать другой?




   Наверх