Windows Shell和Shell API之间有什么关系?

时间:2013-12-06 19:50:22

标签: windows architecture windows-shell

Microsoft Windows'UI的核心内容称为Windows Shell。传统上它是Windows资源管理器,但据我所知,在Windows 8中它是另外的东西(“沉浸式外壳”?)无论如何,它可能replace the shell与其他东西 - Windows本身支持命令提示符作为开箱即用的shell,但是有several 3rd party shells available as well,已经有二十多年了。

同时有一种叫做“The Shell API”的东西。它包括许多函数,接口,注册表键等,旨在允许程序与Shell交互。例如,您可以从自己的程序中显示Windows文件复制对话框;导航Shell Namespace,为Shell编写扩展;等

这让我很困惑。如果可以替换Shell,那是不是意味着Shell API被替换了?不会安装不同的shell会破坏使用Shell API的所有应用程序吗?更重要的是 - 像Shell命名空间这样的东西对Windows来说是必不可少的;我无法想象用别的东西取代它。

或者Shell Shell是否与Shell本身分开,并且每个可替换的Shell必须实现一组特定的接口(并遵守Shell命名空间等强制约定)才能工作?

1 个答案:

答案 0 :(得分:2)

它是分开的。 shell是Explorer.exe。 shell api在DLL中实现。因此,即使Explorer.exe未运行,您也可以使用它们。

当然不要指望shell扩展在替换shell中工作。