【发布时间】:2014-03-11 00:54:33
【问题描述】:
我正在使用SHOpenFolderAndSelectItems 来打开一个显示特定位置的新资源管理器窗口 (PIDL)。我对只打开文件路径不感兴趣,所以据我所知我需要使用 PIDL!
这可行,但是,我对选择窗口中的任何项目都不感兴趣。如果我没有传递任何要选择的项目,则会根据文档打开父文件夹:
选择数组中的项目计数,apidl。如果 cidl 为零,则 pidlFolder 必须指向一个完全指定的 ITEMIDLIST,描述一个 要选择的单个项目。此函数打开父文件夹并 选择该项目。
我怎样才能简单地打开我通过的 PIDL 指向的位置?
作为测试,我通过了一个要选择的项目,指向一个空指针。这似乎有效,但我担心这可能会产生意想不到的副作用。这种行为似乎没有记录。有没有更好的方法来实现我想要实现的目标,或者我现在使用此功能的方式是否正确?
【问题讨论】:
-
我通常使用特定的命令行参数来启动 explorer.exe。参见例如 support.microsoft.com/kb/152457 。请注意,对于 root 或 select 的逗号前后没有空格是非常坚持的。
-
如果只是想打开文件夹,只需ShellExecute即可。
-
@RaymondChen 我在ShellExecute 文档中没有看到任何提及 PIDL。我还需要能够打开虚拟文件夹。
-
@MicroVirus In order to open a PIDL through the command line 我必须将 PIDL 推入共享内存 which seems deprecated。
-
ShellExecute是“您传递给ShellExecuteEx的SHELLEXECUTEINFO结构的lpIDList成员”的简写。很抱歉留下了Ex。
标签: winapi windows-shell