65.9K
CodeProject 正在变化。 阅读更多。
Home

ACF Does Shell - 第 2 部分

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.09/5 (4投票s)

2004年7月1日

1分钟阅读

viewsIcon

26668

downloadIcon

256

本文档展示了如何使用基于 ACF 构建的 WinShell 库来创建和打开 Shell 链接。

引言

在我的上一篇文章 ACF 实现 Shell – 第一部分 中,我讨论了如何使用 Item 类来导航 Windows Shell 并检索项目信息。 在本文中,我将向您展示如何使用 ItemLinkItem 类来创建和打开 Shell 链接(快捷方式)。 如果您不熟悉 Item 类,请先查看我的上一篇文章。

创建 Shell 链接

以下代码片段展示了如何创建一个指向“我的文档”的链接,然后将其保存到桌面

ItemPtr target = new Item(SpecialFolder::Personal); // My Documents
ItemPtr location = Item::get_Desktop(); // Desktop

LinkItemPtr link = new LinkItem(target); // The link
link->Save(location);

如您所见,API 非常简单明了。

打开现有的 Shell 链接

以下代码片段展示了如何打开现有的链接文件并检索其属性(描述、目标、参数等)

StringPtr path = ...; // Path to a file
ItemPtr item = new Item(path);

if (item->IsLink) {
    LinkItemPtr link = item->LinkItem;

    StringPtr description = link->Description;
    StringPtr targetPath = link->Target->FileSysPath;
    StringPtr args = link->Arguments;
    StringPtr dir = link->WorkingDirectory;
}

示例应用程序演示了如何使用这些类。

Item 类

属性

  • bool IsLink;

    获取一个值,指示该对象是否为快捷方式。

  • LinkItemPtr LinkItem;

    获取一个 LinkItem 对象,表示一个快捷方式项目。

对于其他成员,请查看我的上一篇文章。

LinkItem 类

构造函数

  • LinkItem();

    构造一个新的快捷方式。

  • LinkItem(Item* target);

    使用指定的target构造一个新的快捷方式。

属性

  • StringPtr Description;

    获取或设置描述字符串。

  • ItemPtr Target;

    获取或设置目标。

  • StringPtr Arguments;

    获取或设置命令行参数。

  • StringPtr WorkingDirectory;

    获取或设置工作目录。

  • bool IsDirty;

    获取一个值,指示自上次保存以来该对象是否已更改。

方法

  • void Resolve();

    解析快捷方式。 参见 IShellLink::Resolve

  • void Save();

    保存快捷方式。 参见 IPersistFile::Save

  • void Save(Item* parentFolder);

    将快捷方式保存到指定的location。 参见 IPersistFile::Save

  • void Save(Item* parentFolder, String* name, bool rememberSaveLocation = true);

    将快捷方式保存到指定的location,并使用指定的名称。 参见 IPersistFile::Save

参考

© . All rights reserved.