Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: SuperDraco en 8 Julio 2011, 13:39 pm



Título: (SOLUCIONADO) Duda sobre clave y argumentos en el regedit
Publicado por: SuperDraco en 8 Julio 2011, 13:39 pm
Rando me pasas este tema a scripting plz??? aunque aún no estoy seguro de si la solución es más de batch que de windows... gracias...


Alguien me puede ayudar con esta clave?

Tengo una opción en el menú contextual, la clave importante es esta:

Código:
Command="C:\ZetaUpload.bat" "%1"

Obviamente el argumento %1 es el archivo al que se hace click derecho.

Entonces se ejecuta el bat y trabaja el archivo al que hemos clickado.

Lo malo de esto es que al elegir varios archivos a la vez > click derecho > ZetaUpload, pues se abre el .bat para cada uno de los archivos elegidos... osea, si eliges 9 archivos, se abre el BAT 9 veces. Y es una putada porque dentro del bat si que tengo la posibilidad de trabajar hasta con 20 argumentos (20 archivos, al mismo tiempo) así que que se abra el bat 9 veces es un paso atrás, no hacia delante, porque se supone que ya lo tenía echo...  :¬¬

¿Como puedo hacer para elegir varios archivos a la vez y que se ejecuten en el mismo .bat, sin necesidad de abrir varías instancias de la consola?

He probado lo único que se me ha ocurrido, probar la clave con varios argumentos:

Código:
command="C:\ZetaUpload.bat" "%1" "%2" "%3" 

Pero no da resultado...


EDITO:Pienso que debe existir algun argumento, o caracter especial, o algo en el regedit que permita hacer lo que quiero, porque por ejemplo en el programa Winamp, puedes elegir varios archivos click derecho y se agregan a la lista... voy a revisar las claves del winamp a ver si doy con la solución... :/

EDITO2: Pufff....
Código:
"C:\Program Files (x86)\Winamp\winamp.exe" "%1"

-.- Esto no me lo esperaba.

Entonces el problema debe estar en mi bat... ¿Alguna idea?

El principio de mi bat es así:

Código
  1. @echo off
  2. Title=Enviar por e-mail a...
  3. mode con cols=96 lines=23
  4. Nircmd win center ititle "Enviar por e-mail a..."
  5. color 07
  6.  
  7. REM Creamos la variable para cada archivo que se ha arrastrado al .BAT
  8. REM En total 20 variables, para mi son más que suficientes.
  9.  
  10. Set Archivo1=%1
  11. Set Archivo2=%2
  12. Set Archivo3=%3
  13. Set Archivo4=%4
  14. Set Archivo5=%5
  15. Set Archivo6=%6
  16. Set Archivo7=%7
  17. Set Archivo8=%8
  18. Set Archivo9=%9
  19.  
  20.  
  21. Set Archivo10=%2
  22. Set Archivo11=%3
  23. Set Archivo12=%4
  24. Set Archivo13=%5
  25. Set Archivo14=%6
  26. Set Archivo15=%7
  27. Set Archivo16=%8
  28. Set Archivo17=%8
  29. Set Archivo18=%8
  30. Set Archivo19=%8
  31. Set Archivo20=%8

Esta es la diferencia:

Si eligo 2 archivos al mismo tiempo, la opción desde el menú contextual:

(http://img12.imageshack.us/img12/35/prtscrcapturec.jpg)

Y así es como debería ser, si arrastro esos 2 archivos al .BAT:

(http://img21.imageshack.us/img21/4376/administradorenviarpore.jpg)     (http://img535.imageshack.us/img535/8130/administradorenviar158k.jpg)

En definitiva, lo que intento es que ese script me funcione de la misma manera tanto usando la opcion desde el menú contextual, como arrastrando archivos... no se porque no lo hace al elegir la opcion en el menú...

EDITO3:
Además si lo hago desde la consola directamente, así:

Código:
zetaupload.bat earth.ico log4net.dll

También funciona, y eso es lo mismo que hace la clave del registro

Código:
"command=c:\ZetaUpload.bat" "%1" "%2"

pero la maldita clave no funciona, solo me coje el primer parametro!! porque claro, se abren 2 instancias en vez de una...

NO LO ENTIENDO!!!!!  >:( >:( >:(


Título: Re: Duda sobre clave y argumentos en el regedit
Publicado por: SuperDraco en 8 Julio 2011, 15:35 pm
Al final he conseguido hacerlo por las malas, ja! windows a mi...  ::)

Primero la clave sería esta:

Código:
command=C:\RunZeta.bat "%1"


RunZeta.Bat contiene lo siguiente:

Código
  1. @echo off
  2. echo %1>>"%temp%\ZetaUploadList.txt"
  3.  
  4. If NOT exist "%temp%\ZetaUploadDUMMY" (
  5. Copy NUL "%temp%\ZetaUploadDUMMY" >nul 2>&1
  6. ping -n 5 localhost >nul
  7. Del /Q /F "%temp%\ZetaUploadDUMMY"
  8. "C:\ZetaUploadContextMenu.bat"
  9. ) ELSE (
  10. )

Y el resto creo que se puede suponer...  ::)


ZetaUploadContextMenu.bat:

Código
  1. @echo off
  2.  
  3. Setlocal enabledelayedexpansion
  4.  
  5. For /F "tokens=*" %%a in ('type "%temp%\ZetaUploadList.txt"') DO (
  6. Set /a num+=1
  7. Set archivo!num!=%% style="color: #448888;">a
  8. )
  9.  
  10. If not defined archivo1 (goto :error)
  11.  


Título: Re: (SOLUCIONADO) Duda sobre clave y argumentos en el regedit
Publicado por: leogtz en 8 Julio 2011, 16:49 pm
Te iba a decir que probaras con %* pero bueno, ya lo has resuelto.

Código:
"C:\ZetaUploadContextMenu.bat"

Hay que tener cuidado por si el disco no existe.


Título: Re: (SOLUCIONADO) Duda sobre clave y argumentos en el regedit
Publicado por: SuperDraco en 8 Julio 2011, 18:09 pm
Te iba a decir que probaras con %*

Acabo de probarlo, No me ha funcionado :(

Lo que yo he echo ha sido muy brusco y mal, que pena que tu solución no me haya funcionado xD, pero gracias

saludossss