在 Win10 和 Win7 中访问桌面项目?

Access Desktop Items in Win10 vs. Win7?

我试图在 win10 下访问桌面图标的名称和位置,但没有成功。我在使用 Win7 时发布了类似的问题和解决方案 (SO#58126669)。现在我发现解决方案(在 Win7 下完美运行)在 Win10 下不再适用。

这是我所知道的

在 Win7 下,桌面图标存储在桌面的 SysListView32 子项中。可以使用 LVM_* 消息和相关结构获取关于每个的信息。

这是我不知道的事

在 Win10 下,视图层次结构似乎发生了变化。 SysList 视图不再包含项目,而是具有 class SysHeader32 的单个子项。 LVM 消息对其不起作用。我尝试使用类似的 HDM_* 消息和结构,但也没有成功。

有谁知道如何在win10下访问桌面图标?

Windows 10 使用与 Windows 7 不同的桌面方法,正如@Raymond Chen 所评论的那样。您必须使用 IShellWindows、IFolderView 等 COM 对象。不要在此处复制代码,请参阅答案 .