Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo programar en VB para desconectarse y conectarse a la red?

¿Cómo programar en VB para desconectarse y conectarse a la red?

Opción explícita

Const privada NO_ERROR mientras = 0

Const privada MAX_ADAPTER_NAME mientras = 256

Tipo privado IP_ADAPTER_INDEX_MAP

Índice tan largo

wsName Como cadena * MAX_ADAPTER_NAME

Tipo final

Tipo privado IP_INTERFACE_INFO

NumAdapters tan largo

Adaptador(0) Como IP_ADAPTER_INDEX_MAP

Tipo de finalización

Declaración privada Sub CopyMemory Lib "kernel32.dll" Alias ​​​​"RtlMoveMemory" (Destino ByRef como cualquiera, ByRef Fuente como cualquiera, longitud de ByVal tan larga)

Función de declaración privada IpReleaseAddress Lib "IPHLPAPI.dll" (ByRef AdapterInfo como IP_ADAPTER_INDEX_MAP) mientras

Función de declaración privada IpRenewAddress Lib "IPHLPAPI.dll " ( ByRef AdapterInfo As IP_ADAPTER_INDEX_MAP) Siempre

Función de declaración privada GetInterfaceInfo Lib "IPHLPAPI.dll" (ByRef pIfTable Como Cualquiera, ByRef dwOutBufLen Mientras) Siempre

Subcomando privado1_Click( )

Atenuar i mientras, lOut mientras, lNum mientras

Atenuar III como IP_INTERFACE_INFO, arrTmp() como byte

Atenuar aIAIM() como IP_ADAPTER_INDEX_MAP , IAIM como IP_ADAPTER_INDEX_MAP

i = GetInterfaceInfo(III, lOut)

ReDim arrTmp(lOut - 1)

i = GetInterfaceInfo(arrTmp(0), lOut )

Si <> NO_ERROR entonces salgo de Sub

CopyMemory lNum, arrTmp(0), 4

Debug.Print lNum "Interfaz(es) de red; ¡¡Total!!"

ReDim aIAIM(lNum - 1)

Para i = 0 a lNum - 1

CopiarMemoria aIAIM(i), arrTmp(4 + i * Len(IAIM)), Len(IAIM)

Depurar.Imprimir "Índice:";

aIAIM(i).Index; " Nombre:"; StrConv(aIAIM(0).wsName, vbFromUnicode)

Siguiente

Debug.Print IpReleaseAddress(aIAIM(0)) 'Romper Abra la primera tarjeta de red

End Sub

Private Sub Command2_Click()

Atenuar i As Long, lOut As Long, lNum As Long

Atenuar III como IP_INTERFACE_INFO, arrTmp() como byte

Atenuar aIAIM() como IP_ADAPTER_INDEX_MAP, IAIM como IP_ADAPTER_INDEX_MAP

i = GetInterfaceInfo(III, lOut)

ReDim arrTmp(lOut - 1)

i = GetInterfaceInfo(arrTmp(0), lOut)

Si <> NO_ERROR entonces salgo de Sub

CopyMemory lNum , arrTmp(0), 4

Debug.Print lNum; "¡¡¡Total de interfaces de red!!!"

ReDim aIAIM(lNum - 1)

Para i = 0 a lNum - 1

CopiarMemoria aIAIM(i), arrTmp(4 + i * Len(IAIM)), Len(IAIM)

Debug.Print "Índice :"; aIAIM(i).Index; " Nombre:"; StrConv(aIAIM(0).wsName, vbFromUnicode)

Siguiente

Depurar.Imprimir IpRenewAddress(aIAIM(0) ) 'Restaurar la primera tarjeta de red

End Sub