是否可以以编程方式将文件夹添加到资源管理器窗口中的Windows 10快速访问面板?

con*_*ist 15 winapi windows-10

显然,微软已经(有点)用快速访问项取代了"收藏夹"Windows资源管理器项.但我找不到以编程方式向其添加文件夹的方法(在Google上都不是MSDN).有没有办法做到这一点?

小智 11

在PowerShell中有一种简单的方法(至少):

$o = new-object -com shell.application
$o.Namespace('c:\My Folder').Self.InvokeVerb("pintohome")
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.


bon*_*dar 7

也许它会帮助某人,直到 MS 发布 API。我运行了 procmon,似乎涉及到这些注册表项

固定到快速访问:

HKEY_CLASSES_ROOT\Folder\shell\pintohome
Run Code Online (Sandbox Code Playgroud)

取消固定时:

HKEY_CLASSES_ROOT\PinnedFrequentPlace\shell\unpinfromhome\command
Run Code Online (Sandbox Code Playgroud)

固定时也使用此资源:(EDIT1:再也找不到它了..)

AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\{SOME_SORT_OF_GUID}.automaticDestinations-ms
Run Code Online (Sandbox Code Playgroud)

您可以尝试用 7-zip 打开它,里面有几个适合目的地的文件

EDIT2:我发现在“运行”中运行它会打开快速访问:

shell:::{679F85CB-0220-4080-B29B-5540CC05AAB6}
Run Code Online (Sandbox Code Playgroud)


con*_*ist 5

我在这里得到了答案:

Windows 10 - 以编程方式使用快速访问

显然,这是不可能的,但已经提出了这样一个 API 的提议。


小智 5

Yohan Ney关于固定项目的答案是正确的.要取消固定项目,您可以执行以下操作:

$QuickAccess = New-Object -ComObject shell.application 
($QuickAccess.Namespace("shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}").Items() | where {$_.Path -eq "C:\Temp"}).InvokeVerb("unpinfromhome")
Run Code Online (Sandbox Code Playgroud)

这是我写的一个脚本,使pin/unpin更容易一些:

https://gallery.technet.microsoft.com/Set-QuickAccess-117e9a89