Objetos con VBScript, duda muy básica

Iniciado por prooving, 14 Junio 2012, 08:37 AM

0 Miembros y 1 Visitante están viendo este tema.

prooving

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 (vb) [Seleccionar]

set obj = CreateObject("Scripting.FileSystemObject.Drives")
MsgBox "the drives are" & obj, vbok, "drives"

Muchas gracias de antemano y saludos a toda la comunidad

Prooving

raul338

Me parece que la declaración en si esta mal :P Prueba así

Código (vb) [Seleccionar]

set obj = CreateObject("Scripting.FileSystemObject")
MsgBox "the drives are" & obj.Drives, vbok, "drives"

prooving

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??

raul338

Es porque precisamente es un objeto, y no puedes tratarlo como string
Mira el ejemplo en el MSDN

Código (vb) [Seleccionar]
Sub ShowDriveList()
    Dim fs, d, dc, s, n
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set dc = fs.Drives
    For Each d In dc
        s = s & d.DriveLetter & " - "
        If d.DriveType = 3 Then
            n = d.ShareName
        Else
            n = d.VolumeName
        End If
        s = s & n & vbCrLf
    Next
    MsgBox s
End Sub

prooving

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

raul338

No, Drives es una coleccion, debes tratarlo como si fuera un array :)

prooving

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: