gpt4 book ai didi

c++ - 如何在用户创建的库中打开 Windows 资源管理器?

转载 作者:行者123 更新时间:2023-11-30 03:52:16 31 4
gpt4 key购买 nike

最终,我希望能够在 C++ 代码中为文件对话框执行此操作,但能够从命令行执行此操作将是一个好的开始...

对于“标准”库 - 文档、音乐、图片和视频 - 我知道有特殊的“shell:”名称可以使用(列表 here)。

例如,

explorer.exe shell:PicturesLibrary

将直接在图片库 View 中打开资源管理器。

但是我创建了一个新的图书馆,比如“我的图书馆”,我找不到任何方法直接在“我的图书馆”中打开资源管理器。到目前为止,我能做的最好的事情就是打开“shell:Libraries”并强制用户从那里下降。

有人知道吗?

最佳答案

此控制台应用程序首先使用 SHGetKnownFolderPath 获取用户库文件夹的路径。然后它使用 ShellExecute 来“探索”该目录中的“My Library”库文件。

SHGetKnownFolderPath 给出的字符串由 CoTaskMemFree 释放。此外,SHGetKnownFolderPath 没有 ANSI 版本,所以我只是将所有内容都设为宽字符显式。

不包括错误检查,因此您可能需要添加它。

#include <Windows.h>
#include <Shellapi.h>
#include <Shlobj.h>

int main() {
PWSTR libraries_path = NULL;
SHGetKnownFolderPath(FOLDERID_Libraries, 0, NULL, &libraries_path);
ShellExecuteW(NULL, L"explore", L"My Library.library-ms",NULL,libraries_path,SW_SHOW);
CoTaskMemFree(libraries_path);
}

从命令行,这会做类似的事情:

"%appdata%\Microsoft\Windows\Libraries\My Library.library-ms"

关于c++ - 如何在用户创建的库中打开 Windows 资源管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30803761/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com