[APORTE] [VBS] Añade una ventana Debug para tus scripts!

Iniciado por Mad Antrax, 16 Abril 2014, 14:49 PM

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

Mad Antrax

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




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.
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

Eleкtro

¿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.








JohnConnor

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