Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Mad Antrax en 16 Abril 2014, 14:49 PM

Título: [APORTE] [VBS] Añade una ventana Debug para tus scripts!
Publicado por: Mad Antrax en 16 Abril 2014, 14:49 PM
Muy buenas a todos

Como está de moda programar en VBS, os dejo el siguiente aporte. Se trata de un pequeño script que permite añadir una ventana de "debug" para que podamos depurar y programar mejor cualquier script en VBS.

La idea la he sacado de stackoverflow, básicamente se trata de una pequeña función que crea una instancia de Internet Explorer en la que se irá añadiendo cualquier evento que nosotros queramos, con su TimeStamp. Para ello haremos lo siguiente:

Creamos un nuevo fichero que llamaremos debug.vbs con el siguiente código:

Código (vb) [Seleccionar]
Dim oMIE

Function Debug(T)
If Not IsObject( oMIE ) Then
Set oMIE = CreateObject("InternetExplorer.Application")
oMIE.Navigate "about:blank"
oMIE.Visible = True
oMIE.ToolBar = False
oMIE.Width   = 1300
oMIE.Height  = 250
oMIE.Left    = 0
oMIE.Top     = Eval(750 - 250)
Do While oMIE.Busy
WScript.Sleep 100
Loop
oMIE.Document.Title = "VBS Debug Window"
oMIE.Document.Body.InnerHTML = "<b>" & WScript.ScriptName & "</b></br></br>"
End If
oMIE.Document.Body.InnerHTML = oMIE.Document.Body.InnerHTML & "<code>" & Now & " >> " & T & "</code><br>" & vbCrLf
End Function


Éste fichero debug.vbs te servirá para cualquier futuro script VBS que quieras "debuggear". Luego, en cualquier proyecto VBS, solo tendremos que añadir las siguientes líneas al inicio del código:

Código (vb) [Seleccionar]
Sub LoadDebug
    Set FSO = CreateObject("Scripting.FileSystemObject")
   Set objFile = FSO.OpenTextFile("debug.vbs")
strCode = objFile.ReadAll
   objFile.Close
   ExecuteGlobal strCode
Set objFile = Nothing
Set FSO = Nothing
End Sub

Call LoadDebug


Para llamar a la función Debug, añadiremos la siguiente línea:

Código (vb) [Seleccionar]
Debug "ejemplo"

Así de sencillo, os dejo un ejemplo de código y se resultado con la ventana de Debug:

Código (vb) [Seleccionar]
A = 100
B = 5

C = A * B

Debug "C = " & C

Debug "My path is " & WScript.ScriptFullName
Debug "Wait 2 seconds"
WScript.Sleep 2000

V = "This is a example of string"

V = Replace(V,"i","X")

Debug "My replaced string: " & V

'.......



Debug "end >> WScript.Quit;"
WScript.Quit


(http://i.imgur.com/sdbaLEf.png)

Saludos!!

PD: Hay programas y editores VBS que añaden debugger reales (por ejemplo VbsEdit http://www.vbsedit.com/) pero aquí les traigo algo hand-made, gratis y divertido.
Título: Re: [APORTE] [VBS] Añade una ventana Debug para tus scripts!
Publicado por: Eleкtro en 16 Abril 2014, 16:38 PM
¿Un debugger casero y económico para VBS?, ¡simplemente me parece genial!

PD: Benditos gurús de SO que tienen tiempo para sacar estas ideas xD.
Título: Re: [APORTE] [VBS] Añade una ventana Debug para tus scripts!
Publicado por: JohnConnor en 28 Mayo 2014, 05:37 AM
Exelente, la automatizacion esta de moda y vbs es perfecto para esto.
Mi ultimo proyecto es un entrono visual para VBS + HTA y esto le viene de 10!

Saludos