[vbs] Abrir dialogo de colores de windows

Iniciado por paulgonzalez, 5 Agosto 2009, 17:31 PM

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

paulgonzalez

Necesito hacer una secuencia de comandos con vbs que abra la ventana de dialogo de colores en windows xp. He tratado buscando información por internet y no hallado ninguna página hasta lo momentos que me pudiera ayudar.

leogtz

Cita de: paulgonzalez en  5 Agosto 2009, 17:31 PM
Necesito hacer una secuencia de comandos con vbs que abra la ventana de dialogo de colores en windows xp. He tratado buscando información por internet y no hallado ninguna página hasta lo momentos que me pudiera ayudar.

¿Cual ventana de colores de Windows, a que te refieres con eso?
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Novlucker

Te refieres a esto?




Si es así entonces alcanza con algo como esto :P

Código (vb) [Seleccionar]
set objshell = createobject("wscript.shell")
objshell.run "RunDll32.exe shell32.dll,Control_RunDLL desk.cpl,,2"


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

EddyW

No...
A lo que yo le entiendo es el cuadro de dialogo de Colores del CommonDialog..
Ahora no puedo hacerlo en mi PC, mas tarde si no responden lo posteo..

SaluDOS!!!

paulgonzalez

A lo me refiero es al cuadro de diálogo de windows que permite seleccionar un color desde una secuencia de comandos vbs, para luego traerme el dato del color en hexadecimal...

Novlucker

Sin palabras entonces ... no se que se pueda hacer eso en vbs ... si en VB por medio de commondialog.showcolor, pero no en vbs  :-\

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

leogtz

Cita de: paulgonzalez en 19 Agosto 2009, 17:35 PM
A lo me refiero es al cuadro de diálogo de windows que permite seleccionar un color desde una secuencia de comandos vbs, para luego traerme el dato del color en hexadecimal...

De nuevo no te explicas bien, deja una captura de pantalla.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

paulgonzalez

#7


Lo que pasa es que estoy haciendo un programa de procesamiento por lotes (BATCH) que este a su vez crea una secuencia de comandos vbs, en donde debe aparecer la ventana de dialogo de colores de Windows, para que el usuario pueda elegir un color, de tal manera que tiene que aparecer el dato en hexadecimal en la pantalla del cmd, y que haga todo ésto, sólo ejecutando el archivo BATCH (.bat).

@echo off
@title Color elejido por el usuario
mode con cols=37 lines=12
color e0
echo Elija un color...
rem Aquí iría el código vbs...
(
echo ...?
echo ...?
echo ...?
)>colores.vbs
rem Ejecutando el vbs...
cscript //nologo colores.vbs>Dato.txt
set /p elColor=<Dato.txt
echo.
echo Elegiste en hexadecimal, el color: %elColor%
echo.
echo Pulse una tecla para salir
pause>nul
exit

paulgonzalez

Lo que pude hacer con el problema propuesto, es hacer el código Batch cree un  programa javascript para luego ejecutarlo, lo cual aparece el cuadro de dialogo en donde el usuario puede seleccionar un color de su preferencia, para luego después aparecer  en el programa Batch el color en hexadecimal. De esta forma no me sirve, ya que lo quiero hacer es que aparezca el cuadro de colores a través de una secuencia de comandos, ya sea .vbs o .js.
Aquí le mando el código que pude hacer, esperando me puedan ayudar a lo que realmente quiero.

Código:

@echo off
@title Color elejido por el usuario
mode con cols=44 lines=7
color e0
cd\
set ruta=%cd%/
echo.
echo  Elija un color...
rem El código javascript...
(
        echo ^<script language="javascript"^>
   echo    function decAhex(dec^){ 
   echo       dec = parseInt(dec^);
   echo        var hexChars="0123456789ABCDEF";
   echo        var dig = new Array(5^); 
   echo        ^for ^(k^=0; k^<6; k++^){
        echo            dig[k] = dec %% 16;
   echo            dec = (dec-dig[k]^) / 16;
   echo        }
   echo        var resul = "";
   echo        ^for ^(k^=5; k^>-1; k--^){
   echo            resul += hexChars.charAt(dig[k]^);
   echo        }     
   echo        return resul;
   echo    }
   echo    function VentanaColores(^){
   echo        fso = new ActiveXObject("Scripting.FileSystemObject"^);
   echo          f1 = fso.CreateTextFile("%ruta%Dato.txt", true^);
   echo        var color = decAhex(dialogHelper.ChooseColorDlg(0x000000^)^);
   echo        f1.WriteLine(color^);
   echo        f1.Close(^);
   echo        close(^);      
   echo    }
   echo ^</script^>
        echo ^<body onload="VentanaColores()"^>
   echo    ^<object name="dialogHelper" classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b"^>^</object^>
   echo ^</body^>
)>colores.html
rem Ejecutando el javascript...
colores.html
set /p elColor=<Dato.txt
del Dato.txt
del colores.html
echo.
echo  Elegiste en hexadecimal, el color: #%elColor%
echo.
echo  Pulse una tecla para salir
pause>nul
exit