在 Windows 资源管理器中打开 Public 文档文件夹

Open Public Documents folder in Windows Explorer

我有以下文件需要在 windows 资源管理器中打开 window

C:\Users\Public\Documents\folder1\test.txt

到目前为止,使用上面的路径打开这个文件是没问题的,我可以像往常一样阅读它。

但是,当尝试使用 wxExecute((wxChar **)cmd, wxEXEC_ASYNC, NULL); 通过 Windows Explorer 打开此文件夹时,其中 cmd 是上述路径(减去文件),它会打开我的用户文档。

我已经尝试了各种 Windows API 函数来获取路径,其中一些包括 Public 文档有它自己的 ID,这些仍然生成我已有的路径。我可以为 Windows Explorer 提供任何 CLI 选项,以便它实际上可以打开 Public 文档而无需恢复到我的用户文档文件夹吗?

它没有记录,但至少从 XP 开始使用以下命令行在多个 windows 版本中工作:

explorer.exe /select,"path-to-open"

注意逗号,并确保路径被引用。该路径可能包含文件名,在这种情况下会选择该文件。

(对于 Windows 10,使用文件名实际上是个好主意,否则打开父文件夹时会选择指定的子文件夹)

应该与 CreateProcessShellExecutesystem() 或 wxWidgets 提供的任何舒适性相同。

实际上是 wxWidgets 的 wxExec 的问题。将命令转换为 ShellExecute 就可以很好地打开它。可能 Widgets 2.9.5 无法处理 Windows 10 的伪文件夹和怪异之处?

首先,为什么要将字符串转换为 wxChar**?这不可能是对的。

其次,您应该首先使用 wxLaunchDefaultApplication() 而不是 "raw" wxExecute()(FWIW wxLaunchDefaultApplication()ShellExecute() 的直接包装MSW,而 wxExecute() 要复杂得多)。