Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo obtiene VC el nombre de dominio o grupo de trabajo local?

¿Cómo obtiene VC el nombre de dominio o grupo de trabajo local?

1. Utilice

int DimCount;

void main()

LPNETRESOURCE lpNetRC_p=NULL. ;

DimCount=0;

Enumerar(lpNetRC_p) ;

2. bool Enumerar(LPNETRESOURCE lpNetRC_p)

{

int UserCount=0;

HANDLE hEnum = 0

DWORD dwScope = RESOURCE_GLOBALNET;

DWORD dwType = RESOURCETYPE_ANY;

DWORD dwResult = WNetOpenEnum(

dwScope, // alcance de la enumeración

dwType, // recurso tipos para enumerar

0, // enumera todos los recursos o RESOURCEUSAGE_CONTAINER

lpNetRC_p, // puntero a la estructura de recursos (NULL la primera vez)

&hEnum // manejar el recurso

if( dwResult != NO_ERROR )

{

int re=GetLastError(); p>

p>

return FALSE;

}

DWORD dwBuffer = 16384; // 16K es un tamaño razonable

DWORD dwEntries = 0xFFFFFFFF ; // enumera todas las entradas posibles

LPNETRESOURCE lpBuffer;

// primero asigna el búfer para las estructuras NETRESOURCE...

lpBuffer=(LPNETRESOURCE)GlobalAlloc(GPTR) ,dwBuffer ) ;

dwResult = WNetEnumResource(hEnum,&dwEntries,lpBuffer,&dwBuffer

if( dwResult == NO_ERROR )

{

for( registrar DWORD i = 0 ; i

{

<

p> // memcpy(&lpBuffer[i],&lpBuffer[i],sizeof(NETRESOURCE));

if(lpNetRC_p)

{

if( lpBuffer[i].dwDisplayType==RESOURCEDISPLAYTYPE_DOMAIN)

{

//Aquí se obtiene el nombre de dominio local o el nombre del grupo de trabajo y se coloca en la matriz

strcpy((char *)DimInfo[DimCount++].dimName,lpBuffer[i].lpRemoteName

}

else

{ //aquí Solo); obtenga el nombre de usuario y colóquelo en la matriz

strcpy((char *)DimInfo[DimCount-1].User[UserCount++].UserName,lpBuffer[i].lpRemoteName+2); >

if(UserCount>=20)UserCount=0;

}

}

DWORD a=lpBuffer[i].dwDisplayType, c= lpBuffer[i].dwUsage;

//RESOURCEUSAGE_CONTAINER == (lpBuffer[i].dwUsage & RESOURCEUSAGE_CONTAINER)

//Las condiciones anteriores enumeran todos los recursos de la red

if(a==6||a&RESOURCEDISPLAYTYPE_DOMAIN==RESOURCEDISPLAYTYPE_DOMAIN||c&RESOURCEUSAGE_CONTAINER==RESOURCEUSAGE_CONTAINER)

{

if(!Enumerate(&lpBuffer[i]) )

{

return FALSE;

}

//strcpy((char *)Usuario[UserCount++].NombreDeUsuario,lpBuffer [i]. lpRemoteName+2);

//if(UserCount>=20)UserCount=0

}

}

} <; /p>

else if(dwResult != ERROR_NO_MORE_ITEMS)

{

return FALSE

}

if(lpBuffer ) GlobalFree((HGLOBAL) lpBuffer)

WNetCloseEnum(hEnum)

devuelve VERDADERO;