Esta función crea un vector con los nombres de las computadoras de un dominio o grupo de trabajo, o los nombres de los recursos y las impresoras en red de un equipo.
Utilizando la función ANETRESOURCES() Por Luis María Guayán, Tucumán, Argentina
Podemos utilizar la función ANETRESOURCES() (disponible desde Visual FoxPro 6.0) para obtener en un vector, pasado como primer parámetro, todos los nombres de computadoras de un dominio o grupo de trabajo; o también los recursos compartidos e impresoras de red de una computadora específica. En el segundo parámetro se debe especificar el nombre de dominio o grupo de trabajo (esto a partir de Visual FoxPro 7.0); o el nombre de la computadora con el formato \\NombreComputadora.
La función ANETRESOURCES() nos retornará cualquier recurso de red, solo los recursos compartidos, o solo las impresoras de red, según el valor del tercer parámetro, que puede ser 0, 1 ó 2 respectivamente. El siguiente código de ejemplo nos mostrará un formulario similar al de la Figura 1. Este formulario carga en una lista los nombres de las computadoras del dominio o grupo de trabajo actual (o el que nosotros especifiquemos en el cuadro de texto), y a medida que recorremos esta lista, nos mostrará los recursos compartidos e impresoras de red de cada computadora. 
Figura 1
PUBLIC goMiForm
goMiForm = NEWOBJECT("MiForm")
goMiForm.SHOW(1)
RETURN
DEFINE CLASS MiForm AS FORM
HEIGHT = 260
WIDTH = 530
AUTOCENTER = .T.
SHOWWINDOW = 2
CAPTION = "Ejemplo de ANETRESOURCES()"
ICON = HOME(1) + "\Graphics\Icons\Win95\NetHood.ico"
NAME = "frmANet"
ADD OBJECT lstcomputadoras AS LISTBOX WITH ;
HEIGHT = 168, LEFT = 16, TOP = 72, WIDTH = 184, ;
NAME = "lstComputadoras"
ADD OBJECT lstrecursos AS LISTBOX WITH ;
HEIGHT = 72, LEFT = 216, TOP = 72, WIDTH = 296, ;
NAME = "lstRecursos"
ADD OBJECT lstimpresoras AS LISTBOX WITH ;
HEIGHT = 72, LEFT = 216, TOP = 168, WIDTH = 296, ;
NAME = "lstImpresoras"
ADD OBJECT txtdominio AS TEXTBOX WITH ;
HEIGHT = 24, LEFT = 16, TOP = 24, WIDTH = 184, ;
NAME = "txtDominio"
ADD OBJECT lblTit1 AS LABEL WITH ;
NAME = "lblTit1", AUTOSIZE = .T., FONTBOLD = .T., ;
BACKSTYLE = 0, CAPTION = "Dominio", ;
HEIGHT = 17, LEFT = 16, TOP = 8, WIDTH = 48
ADD OBJECT lblTit2 AS LABEL WITH ;
NAME = "lblTit2", AUTOSIZE = .T., FONTBOLD = .T., ;
BACKSTYLE = 0, CAPTION = "Computadoras", ;
HEIGHT = 17, LEFT = 16, TOP = 56, WIDTH = 86
ADD OBJECT lblTit3 AS LABEL WITH ;
NAME = "lblTit3", AUTOSIZE = .T., FONTBOLD = .T., ;
BACKSTYLE = 0, CAPTION = "Recursos compartidos", ;
HEIGHT = 17, LEFT = 216, TOP = 56, WIDTH = 132
ADD OBJECT lblTit4 AS LABEL WITH ;
NAME = "lblTit4", AUTOSIZE = .T., FONTBOLD = .T., ;
BACKSTYLE = 0, CAPTION = "Impresoras compartidas", ;
HEIGHT = 17, LEFT = 216, TOP = 152, WIDTH = 143
ADD OBJECT cmdCargarDominio AS COMMANDBUTTON WITH ;
TOP = 24, LEFT = 216, HEIGHT = 24, WIDTH = 136, ;
CAPTION = "Cargar dominio", NAME = "cmdCargarDominio"
*--
PROCEDURE CargarRecursos
LPARAMETERS tcComputadora
LOCAL ln
*-- Lista de recursos compartidos
WITH THISFORM.lstRecursos
.CLEAR
FOR ln = 1 TO ANETRESOURCES(la,tcComputadora,1)
.ADDITEM("\" + la(ln),ln,1)
ENDFOR
.PICTURE = HOME(1) + ;
"\Graphics\Bitmaps\Outline\Nomask\OpenFold.bmp"
ENDWITH
*-- Lista de impresoras de red
WITH THISFORM.lstImpresoras
.CLEAR
FOR ln = 1 TO ANETRESOURCES(la,tcComputadora,2)
.ADDITEM("\" + la(ln),ln,1)
ENDFOR
.PICTURE = HOME(1) + ;
"\Graphics\Bitmaps\Outline\Nomask\PrintFld.bmp"
ENDWITH
ENDPROC
*--
PROCEDURE CargarComputadoras
LPARAMETERS tcDominio
LOCAL ln
*-- Lista de computadoras del dominio o grupo de trabajo
WITH THISFORM.lstComputadoras
.CLEAR
FOR ln = 1 TO ANETRESOURCES(la,tcDominio,0)
.ADDITEM("\" + la(ln),ln,1)
ENDFOR
.PICTURE = HOME(1) + ;
"\Graphics\Bitmaps\Outline\Nomask\MyComp.bmp"
.LISTINDEX = 1
ENDWITH
ENDPROC
*--
PROCEDURE INIT
LOCAL lcDominio, lcComputadora
*-- Toma el dominio actual
lcDominio = GETENV("USERDOMAIN")
THISFORM.txtDominio.VALUE = lcDominio
THISFORM.CargarComputadoras(lcDominio)
lcComputadora = THISFORM.lstComputadoras.VALUE
THISFORM.CargarRecursos(lcComputadora)
ENDPROC
*--
PROCEDURE lstComputadoras.INTERACTIVECHANGE
LOCAL lcComputadora
WAIT WINDOW NOWAIT "Trabajando ..."
lcComputadora = THIS.VALUE
THISFORM.CargarRecursos(lcComputadora)
WAIT CLEAR
ENDPROC
*--
PROCEDURE cmdCargarDominio.CLICK
LOCAL lcDominio
WAIT WINDOW NOWAIT "Trabajando ..."
lcDominio = ALLTRIM(THISFORM.txtDominio.VALUE)
THISFORM.CargarComputadoras(lcDominio)
lcComputadora = THISFORM.lstComputadoras.VALUE
THISFORM.CargarRecursos(lcComputadora)
WAIT CLEAR
ENDPROC
ENDDEFINE Para mas detalles de la función ANETRESOURCES() mire el archivo de ayuda de Visual FoxPro.
|