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

Вниз

[D6,WinAPI] NetUserEnum   Найти похожие ветки 

 
Воронкин ©   (2002-06-10 14:53) [0]

Как способом можно наиболее корректно получить список пользователей в сети ?
Вот этот пример не работает, вернее, я могу получить список пользователей своей машины, а , скажем , пользователей, зарегистрированных на домене \\TestDomain ?
Var
Buffer, tmpBuffer: Pointer;
prefmaxlen: Integer;
resume_handle: DWORD;
entriesread: DWORD;
totalentries: DWORD;
I, Size: Integer;
NickName: String;
FullName: String;
Comment:String;
rItem:String;
Srvr : WideString;
nErr: integer;
begin

prefmaxlen := -1;
entriesread := 0;
totalentries := 0;
resume_handle := 0;
UserListBox.Items.Clear;
Srvr:="\\TestDomain";
nErr := NetUserEnum (PWideChar(Srvr), 10, $0002, @Buffer, prefmaxlen, @entriesread, @totalentries, @resume_handle);
tmpBuffer := Buffer;
For I := 0 To totalentries - 1 Do
Begin
rItem := PUSER_INFO_10 (tmpBuffer).usri10_name;
resume_handle := 0;
UserListBox.Items.Add (rItem);
tmpBuffer := Pointer (DWORD (tmpBuffer) + SizeOf (USER_INFO_10));
end;
UserListBox.Items.Add("Done");
NetApiBufferFree(Buffer);
End;


 
alexdbases ©   (2002-06-10 15:28) [1]

procedure FindAllComputers(Workgroup: String);
Var EnumHandle : THandle;
WorkgroupRS : TNetResource;
Buf : Array[1..500] of TNetResource;
BufSize : Cardinal;
Entries : Cardinal;
Result : Integer;
str : string;
begin
ComputerCount := 0;
Workgroup := Workgroup + #0;
FillChar(WorkgroupRS, SizeOf(WorkgroupRS) , 0);
With WorkgroupRS do
begin
dwScope := 2;
dwType := 3;
dwDisplayType := 1;
dwUsage := 2;
lpRemoteName := @Workgroup[1];
end;
WNetOpenEnum( RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
0,
@WorkgroupRS,
EnumHandle );
Repeat
Entries := 1;
BufSize := SizeOf(Buf);
Result :=WNetEnumResource( EnumHandle,
Entries,
@Buf,
BufSize );
If (Result = NO_ERROR) and (Entries = 1) then
begin
Inc( ComputerCount );
Computer[ ComputerCount ] := StrPas(Buf[1].lpRemoteName);
str:=Copy(Computer[ ComputerCount ],3,Length(Computer[ ComputerCount ])+1);
Form1.ListBox1.Items.Add(str);
end;
Until (Entries <> 1) or (Result <> NO_ERROR);
WNetCloseEnum( EnumHandle );

end; { Find All Computers }
Попробуй может подойдет!


 
cypher ©   (2002-06-10 23:01) [2]

Я могу ошибаться, но для NetUserEnum на удаленной машине нада иметь права админа на _удаленной_ машине



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
14-77551
Dimaiv
2002-05-20 17:05
2002.06.24
Может кто-нибудь дать определение?


1-77384
VID
2002-06-12 20:09
2002.06.24
Почему не работает ?


4-77660
Leo_
2002-04-24 03:28
2002.06.24
можно убрать программу в TRAY?


1-77360
Sniffer
2002-06-13 12:32
2002.06.24
Координаты чужого окна


1-77437
Fixxxer
2002-06-10 14:21
2002.06.24
Как сохранить содержимое экрана в файл