2010-01-19 11 views
5

Estoy a punto de romper el pelo a cabo por falta de una forma consistente, a toda prueba para llegar a los elementos del menú contextual que se muestra cuando el Explorador de botón derecho del ratón sobre un elemento. No quiero mostrar un menú, solo quiero analizar los elementos en segundo plano y ejecutarlos programáticamente.Programatically ejecutar Windows Explorer elementos de menú de contexto

He intentado varias combinaciones de IShellFolder, IContextMenu, y otras interfaces COM y no puedo encontrar nada que funcione de forma coherente.

Comprendo que esto es una pregunta vaga, pero si alguien tiene alguna experiencia en absoluto en el ámbito de la ejecución mediante programación de Windows Explorer elementos del menú contextual, cualquier ayuda sería apreciada.

+0

P.S. mi cabello te lo agradecerá :) – jgraves

+0

Esta es una de esas áreas donde "ir a buscar en el registro" puede ser una solución aceptable (las claves de registro son parte de la interfaz documentada por lo que no es tan travieso como suena). ¿Has probado eso? ¿Dio como resultado una mayor pérdida de cabello? – itowlson

+0

voy a buscar más información sobre la cuestión, u tiene una aplicación .NET que funciona en un tipo específico de archivos y desea que un comando de menú contextual de Windows Explorer que pueden ejecutar ur aplicación y pasar la ruta del archivo (4 ejemplo) a la misma, ¿Es esto tu intención? –

Respuesta

2

El maestro de la cáscara, Raymond Chen, hizo toda una serie de posts sobre IContextMenu en su excelente blog.

También hay una pequeña aplicación freeware llamada Runmenu que ejecutará los elementos del menú contextual de shell directamente (El sitio web parece ser down, estoy seguro de que puede encontrar el archivo .exe en algún lugar de la red)

+0

He revisado las publicaciones de Raymond Chen anteriormente y son bastante útiles, pero aún no aclaran el comportamiento peculiar que veo. Esa aplicación Runmenu se ve genial. Voy a tratar de enviar un correo electrónico al autor para ver si puedo obtener un poco de ayuda. La parte de mi situación que hace esto aún más difícil es que estoy tratando de hacer esto desde C#. – jgraves

5

Me llevó como una hora encontrar RunMenu, así que ahorraré tiempo para que todos los demás intenten encontrarlo. Aquí está el enlace que he encontrado, es la versión 2.2:

http://www.programbits.co.uk/downloads/runmenu.zip

espero que ayude.

+2

'Espero que ayude. No realmente, es solo el binario, no hay fuente. – Synetech

3

recientemente que necesitaba esto y conocer el código fuente de la herramienta Context.exe http://www.maddogsw.com/cmdutils/

Ejemplo de salida:

PS D:\Downloads\cmdutils> .\Context.exe /text .\ReadMe.txt 
1: Open 
2: Print 
3: Edit 
4: Add to Multi-Rename List 
5: PowerCmd Here 
6: (bitmap) 
7: 7-Zip    --> 
8: ------------------------ 
9: Sign and encrypt 
10: More GpgEX options --> 
11: ------------------------ 
12: Open with   --> 
13: Search with InfoRapid 
14: ------------------------ 
15: (bitmap)    --> 
16: ------------------------ 
17: (bitmap)    --> 
18: ------------------------ 
19: (bitmap)    --> 
20: ------------------------ 
21: Unlocker 
22: ------------------------ 
23: Restore previous versions 
24: ------------------------ 
25: Send to    --> 
26: ------------------------ 
27: Cut 
28: Copy 
29: ------------------------ 
30: Create shortcut 
31: Delete 
32: ------------------------ 
33: Properties 
Choice? 30 
+0

Funciona bien y el código fuente está incluido. ¡Gracias! – John

Cuestiones relacionadas