代码之家  ›  专栏  ›  技术社区  ›  noober

Windows中每个应用程序最近的伪文档

  •  1
  • noober  · 技术社区  · 10 年前

    如果您查看经典Shell“开始”菜单,您会发现它有一个用于最近应用程序的部分。该部分中的每个项目都可以包含弹出菜单,通常用于显示应用程序早期打开的最新文档。例如,“Word”项包含最近在Word中打开的所有.doc和.docx文件。我知道一种构建此类列表的方法:从“最近”文件夹中获取所有链接,并按.exe名称筛选出匹配的文档。

    但经典Shell开始菜单也显示RDC等程序的弹出菜单。对于RDC客户端,即,它显示最近连接的列表。似乎有一个概念 伪文档 但我从未听说过。如何获取随机.exe文件的列表?

    当做

    1 回复  |  直到 10 年前
        1
  •  4
  •   Jonathan Potter    6 年前

    shell维护最近文档的列表。 SHAddToRecentDocs 允许程序向列表中添加项目。该项目可以是:

    列表和文档中的关键思想是,项目可以是 皮德尔牌手表 ,可以表示 fancy kind of 'file' (你所说的 pseudo-document 这是一个过于简单的说法。阅读文档。)

    要获取最近的文件列表,请使用 SHGetFolderLocation 指定 CSIDL_RECENT 并使用返回的 PIDLIST_ABSOLUTE 以迭代shell项。

    如果项不是文件,则可以通过COM检索列表 IApplicationDocumentLists 这需要 Application User Model ID 。这不包括固定项目,因为相同的原因,无法对其进行编程访问 there is no access to the start menu pin list .

    对此有很多注意事项,最好通过文档进行解释:

    (已编辑以添加有关跳转列表的信息,缺少 IShellLink )