【问题标题】:Open Public Documents folder in Windows Explorer在 Windows 资源管理器中打开公共文档文件夹
【发布时间】:2019-02-26 13:22:43
【问题描述】:

我需要在 Windows 资源管理器窗口中打开以下文件

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

到目前为止,使用上述路径打开这个文件很好,我可以像往常一样阅读它。

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

我尝试了各种 Windows API 函数来获取路径,其中一些包括公共文档有它自己的 ID 的地方,这些仍然生成我已经拥有的路径。我可以为 Windows 资源管理器提供任何 CLI 选项,以便它可以在不恢复到我的用户文档文件夹的情况下实际打开公共文档?

【问题讨论】:

    标签: c++ windows windows-10 wxwidgets


    【解决方案1】:

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

    其次,您首先应该使用wxLaunchDefaultApplication() 而不是“原始”wxExecute()(FWIW wxLaunchDefaultApplication() 是MSW 下ShellExecute() 的简单包装,而wxExecute() 要复杂得多)。

    【讨论】:

    • 选角来自对类似问题的评论,只是尝试不同的东西。 wxLaunchDefaultApplication 有效。不确定 wxExecute 会给它公用文件夹结构带来什么问题,但 ShellExecute 明智的任何事情似乎都很好。谢谢!
    【解决方案2】:

    它没有记录,但至少从 XP 开始,它已经使用以下命令行跨多个 Windows 版本:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-29
        • 2010-09-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多