2012-10-06 25 views
5

我想創建一個上下文菜單外殼擴展,以使用我在Python中編寫的程序。如何在Python中創建一個shell擴展上下文菜單(如dropbox)

我試圖用演示中\Lib\site-packages\win32comext\shell\demos\servers\context_menu.pypywin32工作(here是文件),但它並沒有對我的X64 Win7的工作:它註冊好了,並添加註冊表項,但在上下文菜單中並沒有表現出(甚至在重新啓動後)。所以我搜索了一些,並記住Dropbox說只使用Python進行開發,我查看了它們的上下文菜單註冊表項。我發現他們在他們的InProcServer32中使用:DropboxExt64.15.dll(雖然我讀過this和其他一些資源,但我仍然不太瞭解shell擴展)。所以看起來他們編譯了一個c/C++代碼到dll並用它來調用python代碼。

我的問題是他們是怎麼做到的?我在哪裏可以找到關於如何使用這種方法的資源(例子,指南等)?使用context_menu.py中的方法的缺陷是什麼?

+0

相關:[Windows資源管理器右鍵菜單使用子菜單pywin32(https://stackoverflow.com/q/10833710/321973) –

回答

4

您的擴展需要64位才能顯示在Windows 7 x64的資源管理器中。所以你需要使用64位Python和64位pywin32。

帶外殼擴展的大多數應用程序(如Dropbox)會安裝兩個單獨的外殼擴展,一個用於32位進程,另一個用於64位進程。

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

+0

我做到這一點,它仍然無法正常工作 –