指定命名空间扩展的位置
命名空间扩展的根通常由 Windows Explorer 作为树视图和文件夹视图中的文件夹显示。 若要Windows资源管理器显示扩展的文件和子文件夹,必须指定根文件夹位于 Shell 命名空间层次结构中的位置。 此位置称为 交界点。
将虚拟文件夹用作交界点
定义扩展的交界点的最简单方法是将根文件夹设置为系统虚拟文件夹的子文件夹。 这种类型的交界点称为 虚拟交界点。 桌面和“我的计算机”文件夹是虚拟交界点的典型位置,但你也可以在远程计算机上或在“我的网络位置”、“Internet Explorer”和“控制面板文件夹下定义虚拟交接点。
若要定义虚拟交点,请创建表示相应虚拟文件夹的键的子项,并将其命名为扩展的类标识符的字符串形式, (CLSID) 。 注册的 CLSID 如下所示。
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
Software
Microsoft
Windows
CurrentVersion
Explorer
Virtual Folder Name
NameSpace
{Extension CLSID}
(Default) = Junction Point Name
虚拟文件夹名称 是下表中的子项之一。
位置 | 虚拟文件夹名称 |
---|---|
控制面板 | ControlPanel |
桌面 | 桌面 |
整个网络 | NetworkNeighborhood\EntireNetwork |
我的电脑 | MyComputer |
网上邻居 | NetworkNeighborhood |
远程计算机 | RemoteComputer |
用户文件 | UsersFiles |
必须使用 IRemoteComputer 初始化远程扩展。
将文件系统文件夹用作交界点
有两种方法可将文件系统文件夹定义为交界点。 最简单的方法是在适当的位置创建文件夹,并将句点追加到文件夹的名称,后跟扩展的 CLSID 的字符串形式。 只有文件夹名称在Windows资源管理器中可见。 以下示例使用 MyFolder 的显示名称创建一个交界点。
MyFolder.{Extension CLSID}
或者,可以通过以下方法将常规命名的文件夹定义为交界点:
- 使文件夹只读。
- 通过调用 PathMakeSystemFolder 使文件夹成为系统文件夹。
- 将隐藏的Desktop.ini文件放置在包含扩展的 CLSID 的文件夹中。
Desktop.ini是一个标准文本文件,可添加到任何文件夹中以自定义文件夹行为的某些方面。 有关如何使用此文件的一般讨论,请参阅 如何使用 Desktop.ini自定义文件夹 。 若要将文件夹定义为交界点,则为 [。Desktop.ini的 ShellClassInfo] 部分必须包含以下扩展的 CLSID:
[.ShellClassInfo]
CLSID={Extension CLSID}
打开命名空间扩展视图
当用户浏览到交界点时,Windows资源管理器会自动创建根文件夹的视图。 还可以通过将扩展的 CLSID 作为参数显式启动Explorer.exe来创建视图。 例如,可以使用此方法从快捷菜单或快捷方式启动扩展视图。 例如,若要启动包含树视图的 MyExtension 视图,可以使用以下命令字符串。
%SystemRoot%\Explorer.exe /e,::{MyExtension CLSID}
备用命令字符串可用于启动扩展中对象的视图。 例如,对于使用文件夹视图允许用户查看多个压缩文件之一的内容的扩展,此功能非常有用。
%SystemRoot%\Explorer.exe /e,::{MyExtension CLSID},objectname
objectname 参数是要查看的对象的名称。 Windows资源管理器将名称转换为其相应的 PIDL,并将 PIDL 传递给新文件夹对象的 IPersistFolder::Initialize 方法。
注意
CLSID 字符串的前面必须是冒号 (::) 的配对,否则命令将失败。 在前面显示的两个示例命令行中使用的斜杠 e (/e) 标志指示Windows资源管理器显示树视图。 标志必须用逗号分隔两个冒号。 如果不希望树视图,请省略 /e 标志和逗号。