Pregunta: | 676 - LISTA DE ORDENADORES QUE CONFORMAN UNA RED |
Autor: | Domingo Rodríguez Maroto |
Estoy intentando hacer un programa de copias de seguridad en RED y para lo cual necesito saber la lista de ordenadores que conforman la red pero no sé como hacerlo. Lo que necesito es algo así como un DriveList ó un FileList pero de los ordenadores conectados a la red. Gracias de antemano y un saludo |
Respuesta: | HOOVER ANTONIO LOPEZ RIVERA |
Aqui te va un algoritmo que te recupera el nombre de los usuarios en una red solo necesitas agregar los nombres de los equipos en un treeview u otro objeto y anexarle el recurso compartido ej: la funcion te devuelve pc1 pc2 pc3 simplemente agregale \\pc1 + el recurso compartido \\pc\c\mis documentos Etc.. ************************************************************ Private Sub Nombre_PCs() Dim Ruta_Bat As String Dim Ruta_txt As String Dim Cadena_Bat As String Dim Numeroarchivo As Integer Dim Rshell As Long Dim Linea As String Dim Pos As Integer Dim Equipos As String Dim Nombre_Equipos As Variant Dim Encontrado As Boolean On Error Resume Next Numeroarchivo = FreeFile Ruta_txt = "c:\Temp.txt" '//cambiar la unidad dependiendo del equipo "C:\ o D:\ etc.." Ruta_Bat = "c:\Temp.bat" '//cambiar la unidad dependiendo del equipo "C:\ o D:\ etc.." Pos = 0 Encontrado = False ReDim Nombre_Equipos(0 To 0) If Dir(Ruta_Bat, vbArchive) = "" Then Open Ruta_Bat For Binary As #Numeroarchivo Cadena_Bat$ = "c:\windows\net view >c:\temp.txt" '//cambiar la unidad dependiendo del equipo "C:\ o D:\ etc.." Put #Numeroarchivo, , Cadena_Bat$ Close #Numeroarchivo End If Rshell = Shell(Ruta_Bat, vbHide) Open Ruta_txt For Binary As #Numeroarchivo While Not EOF(Numeroarchivo) Line Input #Numeroarchivo, cdna$ Pos = InStr(1, cdna$, "\") If Pos > 0 Then Equipos = Equipos & Trim(Mid(cdna$, 1, 17)) If Not Encontrado Then Encontrado = True End If W |
Respuesta: | José María Pascual García |
creas una pagina con una Lista y un command cuyo código es: ´ ´ frmListaRecursos.frm ´ ´ Este programa muestra una lista de los ´ recursos disponibles en la red ´ Option Explicit ´ Función para copiar en una cadena el contenido ´ cuya dirección se nos facilita en un Long Private Declare Function lstrcpy Lib "kernel32" _ Alias "lstrcpyA" (ByVal lpString1 As String, _ ByVal lpString2 As Long) As Long ´ Esta función es la encarga de enumerar ´ los recursos partiendo de la Raiz dada, que ´ se utilizará según el valor dado en Uso Private Sub EnumeraRecursos(Raiz As String, Uso As Long) ´ Identificador de la enumeración Dim IdEnumeracion As Long ´ para iniciar y obtener datos de la enumeración Dim DatosRecurso As NETRESOURCE2 Dim DatosInicio As NETRESOURCE ´ Otras variables locales Dim Espacios As String Dim Codigo As Long, Cadena As String ´ Preparamos espacio en la cadena Cadena = String(256, 0) ´ Si no se ha facilitado un punto de inicio If Raiz = "" Then ´ comenzamos enumerando todo Codigo = WNetOpenEnum(RESOURCE_GLOBALNET, _ RESOURCETYPE_ANY, 0, ByVal 0, _ IdEnumeracion) Else ´ en caso contrario ´ si se facilita un proveedor If Uso = RESOURCEDISPLAYTYPE_PROVIDER Then ´ lo asignamos a lpProvider DatosInicio.lpProvider = Raiz Else ´ en caso contrario es un recurso DatosInicio.lpRemoteName = Raiz E |
Respuesta: | Gorka Oiarzabal |
No entiendo muy bien lo que quieres hacer, pero prueba a hacer un filelist, pero que esté direccionado al escritorio y a entorno de red. Si esto te funciona, no tienes mas que configurar la vista de entorno de red, para que en vez de aparecer el nombre del equipo, aparezca la descripción. De esta manera sabrás con mayor detalle qué equipos tienes. Otra solución podría pasar por utilizar Telnet, pero ahí no se cómo va. Si me entero de algo te lo contaré |