2012-10-06 20 views
5

Me gustaría crear una extensión de shell de menú contextual, para ir con un programa que escribo en Python.Cómo crear un menú contextual de extensión de shell en Python (como Dropbox)

Traté de trabajar con una demostración en la \Lib\site-packages\win32comext\shell\demos\servers\context_menu.py de pywin32 (here es el archivo), pero no funcionó en mi Win7 x64: Se registraron bien y añade las claves de registro, pero el menú de contexto no se presentaron arriba (incluso después de un reinicio). Así que busqué un poco más, y recordando que Dropbox decía que solo usaba Python para el desarrollo, miré sus claves de registro del menú contextual. Descubrí que usaron: DropboxExt64.15.dll en su InProcServer32 (aunque he leído this y algunos otros recursos, todavía no sé mucho sobre las extensiones de shell). Entonces parece que compilaron un código c/C++ a un dll y lo utilizan para invocar el código python.

Mi pregunta es ¿cómo lo hicieron? ¿Dónde puedo encontrar recursos (ejemplos, guías, etc.) sobre cómo usar este método? ¿Cuáles son los defectos de usar el método en context_menu.py?

+0

relacionados: [Explorador de menús contextuales de Windows con submenús usando pywin32] (https://stackoverflow.com/q/10833710/321973) –

Respuesta

4

Su extensión necesita ser de 64 bits para aparecer en Explorer en Windows 7 x64. Por lo tanto, debe usar Python de 64 bits y pywin32 de 64 bits.

La mayoría de las aplicaciones con extensiones de shell, como Dropbox, instalan dos extensiones de shell separadas, una para procesos de 32 bits y otra para procesos de 64 bits.

Using 32-bit shell extensions in Windows 7 64-bit

+0

lo hice y todavía no funciona –

Cuestiones relacionadas