【问题标题】:How do I get the name of each item in windows 10 'quick access' items list and put it on a list?如何获取 Windows 10“快速访问”项目列表中每个项目的名称并将其放在列表中?
【发布时间】:2016-12-08 20:17:02
【问题描述】:

在 Windows 10 或可能更低版本的 Windows 中,当您在左侧打开文档文件夹时,会显示一个“快速访问”图标。我只想获取“快速访问”列表中每个项目的名称并将其放入 .ToList();,我该怎么做?
PS,我不想像这些链接中的其他已回答问题一样添加文件夹以快速访问: Is it possible programmatically add folders to the Windows 10 Quick Access panel in the explorer window?

How to programmatically add a folder to Favorites in Windows File Explorer

我正在尝试获取该面板上每个项目的名称,而不是向其中添加文件夹。

【问题讨论】:

  • 请阅读How to Ask 并在提出问题之前尝试搜索,并将该研究包含在您的问题中。没有您想要的 API,请参阅副本。
  • 好吧,nvm 我读了这篇文章,是的,它回答了这个问题
  • 无论你想添加、删除、编辑还是列出项目都无所谓,原理都是一样的:没有 API,因为这样每个其他应用程序都会将自己添加到其中。您可能可以通过迭代相关的注册表项来列出它。

标签: c# windows list


【解决方案1】:

这是一些将其转储到控制台的代码:

// get this: https://docs.microsoft.com/en-us/windows/win32/shell/shell-application
dynamic shell = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));

// this is Quick Access folder id
var CLSID_HomeFolder = new Guid("679f85cb-0220-4080-b29b-5540cc05aab6");
var quickAccess = shell.Namespace("shell:::" + CLSID_HomeFolder.ToString("B"));
foreach (var item in quickAccess.Items())
{
    var grouping = (int)item.ExtendedProperty("System.Home.Grouping");
    switch (grouping)
    {
        case 1:
            Console.WriteLine("Frequent: " + item.Name + " path: " + item.Path);
            break;

        case 2:
            Console.WriteLine("Recent: " + item.Name + " path: " + item.Path);
            break;

        default:
            Console.WriteLine("Unspecified: " + item.Name + " path: " + item.Path);
            break;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多