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.
Demasiado bueno.. Siempre reviso esta página, y no se porque no se me ocurre agradecer, pero estoy muy agradecido siempre. Mil gracias y mil bendiciones...
ResponderBorrar