поиск всех компьютеров в сети

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: поиск всех компьютеров в сети

_byLY » 09 июн 2006, 15:38

#ifndef UNICODE
#define UNICODE
#endif
#include <stdio.h>
#include <assert.h>
#include <windows.h>
#include <Winnetwk.h>

int wmain(int argc, wchar_t *argv[])
{
//WNetOpenEnum
DWORD nStatus,nStatus0,i;
DWORD mydwScope=RESOURCE_CONNECTED;
DWORD mydwType=RESOURCETYPE_ANY;
DWORD mydwUsage =0,mylpBuffersize=16384,mylpcCount =-1;
LPNETRESOURCE mylpNetResource=NULL,mylpBuffer=NULL,mylpBuffer0=NULL;
HANDLE mylphEnum;
//LPVOID mylpBuffer=NULL;

if (argc > 2)
{ fwprintf(stderr, L"Usage: %s [\\\\ServerName]\n", argv[0]);
exit(1); }
printf("\nInformation: \n");
nStatus=WNetOpenEnum(
RESOURCE_CONTEXT,
//RESOURCE_CONNECTED,
RESOURCETYPE_ANY,
0,
mylpNetResource,
&mylphEnum);
if ((nStatus==NO_ERROR)||(nStatus==ERROR_MORE_DATA))
{
mylpBuffer=(LPNETRESOURCE)GlobalAlloc(GPTR,mylpBuffersize);
if (mylpBuffersize!=NULL)
{
ZeroMemory(mylpBuffer,mylpBuffersize);
nStatus0=WNetEnumResource(mylphEnum,
&mylpcCount,
(LPVOID)mylpBuffer,
&mylpBuffersize);


mylpBuffer0=mylpBuffer;
if ((nStatus0==NO_ERROR)||(nStatus0==ERROR_NO_MORE_ITEMS))

for(i = 0; i < mylpcCount; i++)
{
wprintf(//L"\lpLocalName - %s\n"
L"\lpRemoteName - %s\n"
//L"\lpProvider - %s\n"
//L"\dwDisplayType - %s\n"
//L"\lpComment - %s\n"
//L"\dwScope - %s\n"
//L"\dwType - %s\n"
//L"\dwUsage - %s\n"
,
//mylpBuffer0->lpLocalName,
mylpBuffer0->lpRemoteName
//mylpBuffer0->lpProvider
//mylpBuffer0->dwDisplayType,
//mylpBuffer0->lpComment,
//mylpBuffer0->dwScope
//mylpBuffer0->dwType
//mylpBuffer0->dwUsage
);
mylpBuffer0++;

}


;
}}
return 0;
}

Romeo » 23 фев 2006, 12:45

WNetOpenEnum, WNetEnumResource. Можно, конечно это всё и через Shell сделать. Типа берём IShellFolder десктопа и топаем к сетевому окружению используя метод BindToObject, а потом внутри сетевого окружения делаем EnumObjects. Но зачем использовать кувалду для того, чтобы забить пару гвоздей в подмётки сапогов? :)

поиск всех компьютеров в сети

vasya-serega » 13 фев 2006, 15:09

помоги плиз слепому :)
подскажите плиз класс, с помощью которого можно было найти все компьютеры. Желательно C#, то и API функции подойдут тоже. А то что-то у меня проблемы в общении с MSDN :(

Вернуться к началу