0

背景:我决定通过 WPF 自学 C#,我正在编写一个小应用程序,它需要获取开始菜单快捷方式及其目标的列表并存储它们。基本上,我正在尝试使用所有快捷方式并将其目标应用程序的路径放入内存中。但是,我在尝试读取 Windows Installer 快捷方式时遇到了问题(指向类似的快捷方式——Microsoft C:\Windows\Installer\{90120000-0030-0000-0000-0000000FF1CE}\wordicon.exeOffice 就是一个很好的例子)。我做了一些研究,似乎 Windows 使用了一些涉及注册表的幕后魔法来查找文件的实际位置。


问题:如何在 C# 中获取这些 Windows Installer 快捷方式的实际目标?我找到的很多资源都指向该IShellLink界面,但我不知道如何将它与 C# 一起使用。我更喜欢使用 Windows API 调用(或者更好的是 .NET 库)而不是手动查看注册表,但我会就这个问题提供任何指导。

4

2 回答 2

1

经过更多研究,我在这里找到了一个简单的答案。它基本上是使用MsiGetShortcutTarget和的MsiGetComponentPath功能的组合msi.dll

于 2009-07-29T04:59:09.623 回答
0

恐怕 IShellLink 是使用 shell 链接的 Windows API!Shell API 很大程度上基于 COM。

但好消息是 COM 互操作在 .NET 中运行良好。这个网站通常是一个很好的资源:

http://www.pinvoke.net/default.aspx/Interfaces/IShellLinkA.html

于 2009-07-24T22:29:26.873 回答