Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: prooving en 14 Junio 2012, 08:37 am



Título: Objetos con VBScript, duda muy básica
Publicado por: prooving en 14 Junio 2012, 08:37 am
Muy buenas,

Resulta que estoy empezando con el VBscript y he intentado varias veces escribir el siguiente código, utilizando una propiedad de Scripting.FileSystemObject pero no me reconoce el objeto. ¿Puede tener Windows 7 alguna restricción a utilizar objetos programando desde el notepad? En el registro aparece, al menos, el objeto, no sé si también la propiedad, de hecho es un objeto ampliamente utilizado, pero a mi no se por qué no me deja usarlo.
Código
  1. set obj = CreateObject("Scripting.FileSystemObject.Drives")
  2. MsgBox "the drives are" & obj, vbok, "drives"
  3.  
Muchas gracias de antemano y saludos a toda la comunidad

Prooving


Título: Re: Objetos con VBScript, duda muy básica
Publicado por: raul338 en 14 Junio 2012, 15:35 pm
Me parece que la declaración en si esta mal :P Prueba así

Código
  1. set obj = CreateObject("Scripting.FileSystemObject")
  2. MsgBox "the drives are" & obj.Drives, vbok, "drives"
  3.  


Título: Re: Objetos con VBScript, duda muy básica
Publicado por: prooving en 14 Junio 2012, 20:31 pm
Muchas gracias, la verdad es que un objeto no es una propiedad, está claro que lo tenía mal, pero lo he probado con wscript y sigue sin funcionar con lo que me has indicado. ¿Pueden ser algún tipo de configuración de windows 7 sobre el wsh o el registro??


Título: Re: Objetos con VBScript, duda muy básica
Publicado por: raul338 en 14 Junio 2012, 21:35 pm
Es porque precisamente es un objeto, y no puedes tratarlo como string
Mira el ejemplo en el MSDN (http://msdn.microsoft.com/en-us/library/aa243125%28v=vs.60%29)

Código
  1. Sub ShowDriveList()
  2.    Dim fs, d, dc, s, n
  3.    Set fs = CreateObject("Scripting.FileSystemObject")
  4.    Set dc = fs.Drives
  5.    For Each d In dc
  6.        s = s & d.DriveLetter & " - "
  7.        If d.DriveType = 3 Then
  8.            n = d.ShareName
  9.        Else
  10.            n = d.VolumeName
  11.        End If
  12.        s = s & n & vbCrLf
  13.    Next
  14.    MsgBox s
  15. End Sub
  16.  


Título: Re: Objetos con VBScript, duda muy básica
Publicado por: prooving en 14 Junio 2012, 22:11 pm
Ah, entonces hay que pasarlo a una variable string para utilizarlo?

Pues me sigue sin funcionar, esto es terrible, por cierto,  llevo mucho atascado en ésto, muchas gracias por la ayuda.

Saludos


Título: Re: Objetos con VBScript, duda muy básica
Publicado por: raul338 en 14 Junio 2012, 22:13 pm
No, Drives es una coleccion, debes tratarlo como si fuera un array :)


Título: Re: Objetos con VBScript, duda muy básica
Publicado por: prooving en 14 Junio 2012, 22:43 pm
Ok, pues lo tendré en cuenta. Aunque, entonces cómo puedo listar los drives si, por ejemplo, ya que lo tenemos a mano, usamos el código de msdn, porque he quitado la definición de subrutina para que muestre como salida el msgbox tal cual y no me funciona. :huh: