2010-12-13 74 views
3

首先,对不起我的英文不好...如何在Delphi中编写Windows Shell命名空间扩展?

我要添加使用命名空间扩展(NSE)的虚拟文件夹,Windows资源管理器,我希望用户能够打开这个虚拟文件夹,探索了一些路径(例如,c:\test)。

我该如何使用Delphi来做到这一点?谢谢。

回答

7

的地方,开始是MSDN文档:Introduction to the Shell Namespace。当然,这是从C++的角度编写的,但将它映射到Delphi并不难。代码项目是另一个用于此类任务的优秀资源。例如:Mike Dunn的The Complete Idiot's Guide to Writing Namespace Extensions - Part I。事实上,这只是关于shell扩展的一系列优秀文章的一部分。

目前Delphi是一个糟糕的选择,因为它不生成64位可执行文件。这意味着你的外壳扩展不能在64位的Windows上运行,这是一个严重的限制。

随着最近发布的Delphi XE2这个限制已被删除。 XE2能够生成64位可执行文件,因此可用于生成64位外壳扩展。

+0

thx和我只想学习命名空间扩展,所以我不在乎〜 – dropme 2010-12-13 07:46:44

+1

@dropme在这种情况下,Delphi是一个很好的选择,因为VCL COM代码包含了很多复杂性,并允许您专注于真正的问题;但是如果你不得不广泛部署一个shell扩展,那么我的观点是 – 2010-12-13 09:13:09

+4

+1,这是没有x64版本的Delphi编译器的地方之一,是一个严重的限制。 – Remko 2010-12-13 09:54:02

3

基本上,一个shell扩展是一个COM对象,它实现了一组接口。需要实现哪些接口取决于扩展的类型(当然有一些接口使用了扩展)。 你可以开始阅读here(你需要一些C - > Delphi的翻译,但是当你开始对这些问题的工作是更好的你去准备它),然后参考当然MSDN

相关问题