Llamar a función de Shell Extension Context Menu Handler.

Iniciado por APOKLIPTICO, 14 Diciembre 2011, 13:31 PM

0 Miembros y 2 Visitantes están viendo este tema.

APOKLIPTICO

Hola! Como va todo?
Bueno, quería hacer hoy una pregunta sobre context menu handlers.
Tengo un programa que carga opciones en el menú contextual, pongamos por ejemplo el winrar, éste carga las opciones (Comprimir/descomprimir/testear/etc) en el menú contextual asi cuando tenemos un archivo, este puede ser analizado, ver si está comprimido y ofrecer las opciones correctas.
Para esto se llama a una .dll que es un shell extension.

Lo que yo quería saber, es cómo puedo hacer para ya sea llamar a la funcion encargada de hacer la acción que estoy necesitando, o bien para encontrar la ruta del programa que está ejecutando y los parámetros que le está pasando.
Estas son las exports del shell extension que estoy analizando según el dependency walker:

ShellExtension_install
ShellExtension_uninstall
DllCanUnloadNow
DllGetClassObject

Ahora, ninguna de estas funciones me suena que sean lo que estoy necesitando, las primeras dos parecen ser para instalar y desinstalar el shell extension, la siguiente parece que le pide un permiso al dll para descargarlo y la última no tengo idea pero parece ser otra cosa funcional del dll.

Alguien me podría hechar una mano en esto?
Gracias!
Un abrazo
APOKLIPTICO
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

ThunderCls

-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

APOKLIPTICO

Nono, necesito saber que funciones/programa llama y con qué argumentos una shell extension ya existente.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

ThunderCls

Cita de: APOKLIPTICO en 14 Diciembre 2011, 18:05 PM
necesito saber que funciones/programa llama

Esa parte la puedes ver en el registro, por ejemplo,  para los .exe de mi PC:
"C:\Cracking\PEiD\PEiD.exe" "%1"
Se puede ver que se llama al PEiD.exe y el "%1" es el argumento que se le pasa

Cita de: APOKLIPTICO en 14 Diciembre 2011, 18:05 PM
con qué argumentos

Como dije arriba el argumento se le pasa directamente a la app en cuestion, ahora, para ver dicho argumento oficialmente y ver el funcionamiento de la app de acuerdo a dicho argumento me parece que no queda otra que depurar :(

No se si sigo sin entender o es esto lo que preguntas :P
Saludos
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

APOKLIPTICO

#4
Nono, eso no es un context menu handler, eso es simplemente el context menu, es algo simple. Estos son funciones en un .dll. Si vos vas y lo buscás vas a encontrar sólamente un CLSID, yo necesito saber como puedo hacer para llamar a la funcion del context menu handler.

EI: juntando mensajes.

Okay, quizas no se entendió muy bien lo que estoy preguntando: Hay alguna manera de importar una funcion y actuar como si fueses el sistema operativo llamando a lo que se ejecuta cuando hacés click derecho y te aparece el menú contextual?
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón