如何在Python中创建shell扩展上下文菜单(如dropbox)

时间:2012-10-06 11:28:02

标签: python windows-shell win32com

我想创建一个上下文菜单shell扩展,以配合我用Python编写的程序。

我尝试使用来自pywin32\Lib\site-packages\win32comext\shell\demos\servers\context_menu.py中的演示(here是文件),但它在我的Win7 x64上无效:它已注册正常并添加了注册表项,但上下文菜单没有显示(即使重新启动后)。所以我搜索了一些,并记住Dropbox说只使用Python进行开发,我查看了它们的上下文菜单注册表项。我发现他们在DropboxExt64.15.dll中使用了InProcServer32(虽然我读过this和其他一些资源,但我对shell扩展仍然不太了解)。所以看起来他们将一个c / c ++代码编译成一个dll并使用它来调用python代码。

我的问题是他们是怎么做到的?我在哪里可以找到有关如何使用此方法的资源(示例,指南等)?在context_menu.py中使用该方法有哪些缺陷?

1 个答案:

答案 0 :(得分:4)

您的扩展程序需要64位才能在Windows 7 x64上的资源管理器中显示。所以你需要使用64位Python和64位pywin32。

大多数带有shell扩展的应用程序(如Dropbox)都安装了两个独立的shell扩展,一个用于32位进程,另一个用于64位进程。

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