Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.24;
Скачать: [xml.tar.bz2];

Вниз

[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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.007 c
1-77344
CHIMUMBARO
2002-06-12 23:03
2002.06.24
Кому - нибудь знакомо слово Speed Button...?


14-77575
Suntechnic
2002-05-20 21:44
2002.06.24
А есть тут кто-нибудь из славного города Франкфурта?


7-77646
skovorodka
2002-03-31 14:38
2002.06.24
Как изменить время часов виндовс ?


1-77364
Reticent
2002-06-13 12:47
2002.06.24
мааааленький вопросик про память


6-77530
dth
2002-04-17 16:27
2002.06.24
После NMFTP.Disconnect не закрывается приложение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский