Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => 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 (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
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 (vb) [Seleccionar]

set obj = CreateObject("Scripting.FileSystemObject")
MsgBox "the drives are" & obj.Drives, vbok, "drives"
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 (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
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: