Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: .:: KsV ::. en 23 Junio 2015, 23:49 pm



Título: Ayuda Vbscript .Como poner color a una ventana (consola cscript)
Publicado por: .:: KsV ::. en 23 Junio 2015, 23:49 pm
Muy buenas a tod@s  veran tengo un pequeño gran proyecto entre manos .Estoy en detalles y uno de esos detalles es que quiero poner un poco de color a la ventana usando el comando color de batch .Al principio para poner titulo a la ventana use


Código
  1. Set ksv  = CreateObjet('WScript.Shell")
  2. ksv.Exec "%comspec% /c title .::ELHACKER.NET::."
  3.  
  4. WScript.echo "Hola Mundo"
  5. wscript.sleep 3000
  6.  

consola
c:\cscript //nologo  filevb.vbs


 
Pero no funciona con color :

Código
  1. Set ksv  = CreateObjet('WScript.Shell")
  2. ksv.Exec "%comspec% /c color 0a"
  3.  
  4. WScript.echo "Hola Mundo"
  5. wscript.sleep 3000
  6.  

Alguien tiene una idea d como solucionar eso

Gracias de antemano


Título: Re: Ayuda Vbscript .Como poner color a una ventana (consola cscript)
Publicado por: Eleкtro en 24 Junio 2015, 11:14 am
El método Exec y Run corren subprocesos, estás corriendo un subproceso de la CMD... no puedes modificar programáticamente los colores en la instancia actual de la consola bajo VBS, ya que éste no soporta nada de eso.

Lo que puedes hacer es, al iniciar el script, re-ejecutar el script en una nueva instancia de la consola, con los colores modificados.

Ejemplo:
Código
  1. If (WSCript.Arguments.Length = 0) Then
  2.    CreateObject("Wscript.Shell").Run("%comspec% /K """ & _
  3.                                      " Color 70 & "    & _
  4.                                      " CScript.exe /NoLogo """ & WScript.ScriptFullName & """" & " " & """Colorized""" _
  5.                                     ), 1, True
  6.    WScript.Quit(0)
  7.  
  8. ElseIf (WSCript.Arguments.Length > 1) Then
  9.    ' Condicional para cuando se necesita pasar y controlar argumentos adicionales que no sean "Colorized".
  10.  
  11. Else
  12.    ' Condicional para cuando no se necesita pasar y controlar argumentos adicionales que no sean "Colorized".
  13.    WScript.echo "Hello World!"
  14.    Wscript.Echo "End"
  15.  
  16. End If

PD: Experimentar con un lenguaje tan limitado cómo VBS (y Batch) no conlleva a nada que sea realmente de utilidad.

Saludos!