Ver PCs en grupo de trabajo o dominio con vfp

Hola Experto quisiera saber si podría ayudarme a generar una lista de las Maquinas que están conectadas al dominio o grupo de trabajo y sus Nombres.
Supongo que podría hacerlo con el WINSOCK pero no se me Ocurre como realziarlo.
Espero que me Pueda ayudar!
Saludos

2 respuestas

Respuesta
1
Utiliza la función AnetResources() ejemplo:
AnetResources(NombreMatriz, NombreGrupo\Dominio, 1)
La anterior línea te devuelve en una matriz almacenados los nombres de los equipos que están conectados a una red o dominio.
¿Y cómo la ejecuto? Mi dominio se llama SUIDEA
Mira este Código que encontré en una página, es lo que estuve buscando, el problema es que solo lo logro hacer funcionar poniendo todo dentro de un .PRG y este, me crea el formulario con todos los controles correspondientes.
Lo que necesito poder usarlo en un Formulario que ya existe y ensamblar ese código con el que yo tengo.
Te muestro el código:
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
Bueno Espero que me Pueda Ayudar por Favor!
Saludos
Más fácil ¡Imposible!, lo que está escrito como se muestra a continuación:
 HEIGHT = 260
  WIDTH = 530
  AUTOCENTER = .T.
Eso no son más que propiedades las cuales están en formulario, abres el formulario en modo de diseño y buscas las propiedades correspondientes en la ventana propiedades(Height = 260: Buscas la propiedad Height del formulario y le asignas el valor 260 y si no la encuentras seleccionas en el menú formulario Nueva propiedad, escribes el nombre de la propiedad y haces clic en añadir) lo que en cuentras como procedure ejemplo:
Procedure init
  Código
Endproc
No es más que un evento correspondiente al evento init del formulario todo lo que tienes que hacer es pegar en dicho evento el código que está entre la línea Procedure NombreProc y EndProc y listo; y si no lo encuentras seleccionas en el menú formulario Nueva método, escribes el nombre del evento y haces clic en añadir, y finalmente pegas el código del método correspondiente.
Las líneas AddObject son los controles correspondientes que tienes que agregar al formulario.
Eso es todo lo que tienes que hacer.
Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas