WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  WNetEnumResource()

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   WNetEnumResource()
Moroz опубликован 10-09-2001 11:36 MSK   Click Here to See the Profile for Moroz   Click Here to Email Moroz  
Добрый день!
Ни в какую (до обиды:) не могу разобраться с использованием фунуций
WNetOpenEnum()
WNetEnumResource()
WNetCloseEnum()
Нужно получить имена машин из сети для последующего к ним обращения...Какие есть способы?
DEiL опубликован 10-09-2001 12:13 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
ч кстати тоже... :(
Moroz опубликован 10-09-2001 15:39 MSK     Click Here to See the Profile for Moroz  Click Here to Email Moroz     
Попробуй посмотреть на функцию
NetServerEnum()
Она поменьше инфы даёт, но...
sps опубликован 11-09-2001 14:04 MSK     Click Here to See the Profile for sps  Click Here to Email sps     

#include <windows.h>

#include <stdio.h>

#include "Globals.h"
#include <iostream>
using namespace std;

void EnumerateNetworkResources(LPNETRESOURCE pNetResource)
{
DWORD dwResult = 0;

HANDLE hEnum = INVALID_HANDLE_VALUE;
DWORD dwScope = RESOURCE_GLOBALNET;// scope of enumeration
DWORD dwType = RESOURCETYPE_ANY;// resource types to list
DWORD dwUsage = RESOURCEUSAGE_ALL;// resource usage to list
LPNETRESOURCE lpNetResource = pNetResource;//&sNetResource;// resource structure
LPHANDLE lphEnum = &hEnum;// enumeration handle buffer
dwResult = WNetOpenEnum(dwScope, dwType, dwUsage, lpNetResource, lphEnum);

if (dwResult == NO_ERROR)
{
DWORD dwCount = -1;// entries to list
DWORD dwBufferSize = 1<<14;// 16K! buffer size
LPVOID lpBuffer = new unsigned char[dwBufferSize];// buffer
LPNETRESOURCE lpNetRes = NULL;
do {
memset(lpBuffer, 0, dwBufferSize);
dwResult = WNetEnumResource(hEnum, &dwCount, lpBuffer, &dwBufferSize);
if (dwResult == NO_ERROR)
{
for (unsigned int ui = 0; ui < dwCount; ui++)
{
lpNetRes = (LPNETRESOURCE)lpBuffer;
if (lpNetRes[ui].lpRemoteName)
cout << /*lpNetRes[ui].lpLocalName << "\t" << */lpNetRes[ui].lpRemoteName << endl;
if (lpNetRes[ui].dwUsage & RESOURCEUSAGE_CONTAINER)
{
EnumerateNetworkResources(&lpNetRes[ui]);
}
}
}
} while(dwResult != ERROR_NO_MORE_ITEMS);
if (lpBuffer)
delete [] lpBuffer;

dwResult = WNetCloseEnum(hEnum);
}
}

int main(int argc, char* argv[])
{
LPNETRESOURCE pNetResource = NULL;
EnumerateNetworkResources(pNetResource);

return 0;
}

sps опубликован 11-09-2001 14:05 MSK     Click Here to See the Profile for sps  Click Here to Email sps     

#include <windows.h>

#include <stdio.h>

#include <iostream>
using namespace std;

void EnumerateNetworkResources(LPNETRESOURCE pNetResource)
{
DWORD dwResult = 0;

HANDLE hEnum = INVALID_HANDLE_VALUE;
DWORD dwScope = RESOURCE_GLOBALNET;// scope of enumeration
DWORD dwType = RESOURCETYPE_ANY;// resource types to list
DWORD dwUsage = RESOURCEUSAGE_ALL;// resource usage to list
LPNETRESOURCE lpNetResource = pNetResource;//&sNetResource;// resource structure
LPHANDLE lphEnum = &hEnum;// enumeration handle buffer
dwResult = WNetOpenEnum(dwScope, dwType, dwUsage, lpNetResource, lphEnum);

if (dwResult == NO_ERROR)
{
DWORD dwCount = -1;// entries to list
DWORD dwBufferSize = 1<<14;// 16K! buffer size
LPVOID lpBuffer = new unsigned char[dwBufferSize];// buffer
LPNETRESOURCE lpNetRes = NULL;
do {
memset(lpBuffer, 0, dwBufferSize);
dwResult = WNetEnumResource(hEnum, &dwCount, lpBuffer, &dwBufferSize);
if (dwResult == NO_ERROR)
{
for (unsigned int ui = 0; ui < dwCount; ui++)
{
lpNetRes = (LPNETRESOURCE)lpBuffer;
if (lpNetRes[ui].lpRemoteName)
cout << /*lpNetRes[ui].lpLocalName << "\t" << */lpNetRes[ui].lpRemoteName << endl;
if (lpNetRes[ui].dwUsage & RESOURCEUSAGE_CONTAINER)
{
EnumerateNetworkResources(&lpNetRes[ui]);
}
}
}
} while(dwResult != ERROR_NO_MORE_ITEMS);
if (lpBuffer)
delete [] lpBuffer;

dwResult = WNetCloseEnum(hEnum);
}
}

int main(int argc, char* argv[])
{
LPNETRESOURCE pNetResource = NULL;
EnumerateNetworkResources(pNetResource);

return 0;
}

Emerald опубликован 11-09-2001 15:27 MSK     Click Here to See the Profile for Emerald  Click Here to Email Emerald     
Недавно юзал - очень клёво описано. Посмотри здесь: http://www.codeproject.com/internet/getusernames.asp

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.