2014-06-27 27 views
1

我想創建一個外殼擴展上下文菜單和圖標疊加。當通過Python運行程序時,右鍵單擊和菜單單擊正確響應代碼,我已成功註冊並看到上下文菜單顯示。在Python中編寫外殼擴展和編譯

我的問題是,當我嘗試使用cx_Freeze或py2exe將Python代碼編譯爲可執行文件時。它生成可執行文件並運行可執行文件創建註冊表項,但在重新啓動explorer.exe後右鍵單擊時不會顯示菜單。

我認爲cx_Freeze或py2exe將能夠註冊上下文菜單或覆蓋,並讓它與exe中的代碼交談。我需要製作一個dll文件嗎?我對com服務器不是很熟悉,所以任何有外殼擴展經驗的人都會非常感激。

我有更多的細節,如果需要/需要。

+0

殼牌擴展名必須是進程內COM服務器。這意味着你必須創建DLL而不是EXE。 –

+0

@DenisAnisimov好吧,所以我試圖用py2exe。我碰到的問題是如何註冊inProc COM服務器來指向py2exe創建的dll。在這裏使用示例代碼[Python Shell](http://stackoverflow.com/questions/10833710/windows-explorer-context-menus-with-sub-menus-using-pywin32)註冊本地server32密鑰。 –

+0

「如何註冊」 - 這意味着什麼?您不知道如何編寫註冊碼或者您不知道如何在Windows中註冊您的外殼擴展? –

回答

1

我能夠通過dll按照link中的步驟獲取通過dll註冊的上下文菜單。我結束了使用py2exe爲2.7,我不知道他們使用的設置是什麼修復它,或者如果我需要使用regsvr32註冊dll而不是自注冊表可執行文件。我還使用了一個修補py2exe是在鏈接的答案

鏈接: Com server build using Python on 64-bit Windows 7 machine