繁体   English   中英

如何使用C#(WPF)阅读安装程序快捷方式

[英]How to read installer shortcuts with C# (WPF)

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


问题:如何在C#中获取这些Windows Installer快捷方式的实际目标? 我发现了很多资源,它们指向IShellLink接口,但是我不知道如何在C#中使用它。 我宁愿使用Windows API调用(或者更好的是使用.NET库),而不是手动查看注册表,但是我会在此问题上提供任何指导。

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

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

但是好消息是COM互操作在.NET中工作得很好。 该站点通常是非常好的资源:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM