Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: EddyW en 16 Abril 2009, 09:04 am



Título: [BATCH+VBS] Manual - Implementar un CommonDialog "Abrir con.." en Batch
Publicado por: EddyW en 16 Abril 2009, 09:04 am
Implementar un CommonDialog a Batch by 3D1
Ya que no habian post ni preguntas sobre el tema por que algunos creen que es imposible..  ;)
he inventado un metodo utilizando un Script y ejecutandolo con cscript (Console Based Script Host)
Para crear un cuadro de Dialogo de Abrir como todos conocen, bueno por si las moscas  ;D les dejo tambien
un code batch para habilitar Windows Script Host si por alguna razon rara lo tengan deshabilitado..
Bueno suficiente aqui esta el code:
Código
  1. @echo off
  2. @Title .:Cuadros de Dialogo en Batch (Abrir - By 3D1):.
  3. cls
  4. rem ..
  5. rem ------------------------------------------------------------
  6. rem : Por si tiene deshabilitado el Wscriping host cosa rara   :
  7. rem : pero para eso esta la siguiente linea de comandos        :
  8. rem ------------------------------------------------------------
  9. rem ..
  10. reg delete "HKLM\software\Microsoft\Windows Script Host\Settings" /v "Enabled" /f>nul
  11. reg delete "HKCU\software\Microsoft\Windows Script Host\Settings" /v "Enabled" /f>nul
  12. cls
  13. rem ..
  14. rem ------------------------------------------------------------
  15. rem : Con la siguiente linea creamos el Script que creara el   :
  16. rem : objeto CommonDialog de Abrir..                           :
  17. rem ------------------------------------------------------------
  18. rem ..
  19. (
  20. echo Dim DialogBox
  21. echo Set DialogBox = CreateObject("UserAccounts.CommonDialog.1"^)
  22. echo DialogBox.InitialDir = "%HomeDrive%"
  23. echo DialogBox.Filter = "Tipo de Archivos de Texto (Sample)|*.txt"
  24. echo DialogBox.ShowOpen
  25. echo wscript.echo DialogBox.filename
  26. )>CommonDialog.vbs
  27. rem ..
  28. rem --------------------------------------------
  29. rem  Ejcutamos el Script...
  30. rem -------------------------------------------
  31. rem ..
  32. cscript //nologo CommonDialog.vbs
  33. pause>nul
Bien ha si es como funciona los comandos que activan el WinScriptHost creo que no hace falta explicarlo
y ademas creo que muy pocos lo tienen deshabilitado...
la parte que crea el Script esta clara...
Esto..:

InitialDir (Directorio Inicial)
Código
  1. echo DialogBox.InitialDir = "%HomeDrive%"
Indica el directorio que se mostrara al abrir el CommonDialog Aqui esta %HomeDrive% pueden cambiarlo
por "c:\", "d:\" o "c:", "d:" que es lo mismo tambien por la ruta de una carpeta por ejemplo:
"c:\mi musica", pero se entiendo ¿no? ha y con comillas la ruta tenga o no tenga espacios ;D
Esta otra parte:

Filter (Filtro; Descripcion y que archivos se van a mostrar)
Código
  1. echo DialogBox.Filter = "Tipo de Archivos de Texto (Sample)|*.txt"
Es una de las partes mas importantes ya que le diremos al commonDialog que tipos de archivos
queremos ver funciona asi:
Código
  1. ArchivoOTextoODescripcion|*.extensión
Si queremos agregar varios tipos de archivos es asi:
Código
  1. DescripcionOTexto|*.extensión|DescripcionOTexto|*.extensión
y asi susesivamente, ha y si queremos agregar "Todo Tipo de Archivos" solo ponemos *.* si
queremos agregar para ver dos o mas tipos de extensiones es separarlos por , (comas) por ejemplo:
Código
  1. Archivos de Imagen Jpgs y Gisfs|*.jpg,*.gif
Y con comillas tengan o no tengan espacios..
Ejecucion del Script   ;-)

Para ejecutar el Script es muy sencillo es la parte de:
Código
  1. cscript /nologo CommonDialog.vbs
Esto devuelve en la ventana del cmd la direccion del archivo seleccionado, si queremos que la ruta
se guarde en un txt es simple:
Código
  1. cscript /nologo CommonDialog.vbs>Archivo.txt
y asi la ruta que seleccionemos se ira a Archivo.txt  ;D
SaluDOS!!!  :8):
PD: Espero les haya sido util..



Título: Re: [BATCH+VBS] Manual - Implementar un CommonDialog "Abrir con.." en Batch
Publicado por: maty_16_94 en 28 Abril 2009, 06:37 am
hola me interesa bastante el tema pero no me quedo muy claro.. como endria que hacer para usar el archivo q seleccione dentro del bat?


Título: Re: [BATCH+VBS] Manual - Implementar un CommonDialog "Abrir con.." en Batch
Publicado por: EddyW en 28 Abril 2009, 06:46 am
Asi como señalo en la siguiente linea:
Código
  1. cscript //nologo CommonDialog.vbs>Archivo.txt
Esta parte ejecuta el commanddialog que hemos creado y manda es string del archivo seleccionado a "Archivo.txt"..
si le das click en cancelar entonces "Archivo.txt" aparece vacio, si es que seleccionas algo, aparece la ruta del archivo...
luego para usar la ruta seleccionada en Batch podrias agregarle a una variable asi:
Código
  1. Set /p RutA=<Archivo.txt
Con eso le mandas la ruta seleccionada a la variable RutA..
SaluDOS!!!


Título: Re: [BATCH+VBS] Manual - Implementar un CommonDialog "Abrir con.." en Batch
Publicado por: maty_16_94 en 28 Abril 2009, 06:54 am
jekej gracias man sos un groso

Edit: una ultima cosita... en wscript. tngoq poner algo despues del punto? x q me tira error q falta un modificador y no se donde lei un code q decia WScript.echo por ejemplo

Re-Edit:Ya lo solucione :P


Título: Re: [BATCH+VBS] Manual - Implementar un CommonDialog "Abrir con.." en Batch
Publicado por: EddyW en 28 Abril 2009, 07:00 am
No te entendi si la ultima pregunta..
el wscript.echo no modificas para nada que es el que manda la ruta a la pantalla..
SaluDOS!!!


Título: Re: [BATCH+VBS] Manual - Implementar un CommonDialog "Abrir con.." en Batch
Publicado por: maty_16_94 en 28 Abril 2009, 07:04 am
Naa deja fue un error mio eso... ahora el tema es que no escribe la ruta del archivo en el archivo archivo.txt me lo deja con un espacio pero no con la ruta del archivo q selecione... estoy viendo como puedo hacer para solucionar.

Saludos


EDIT: SOLUCIONADO... Muy bueno tu code gracias