背景:我已经决定通过WPF自学C#和我正在写一个小型应用程序,需要获取的开始菜单快捷方式和他们的目标名单,并将其储存。基本上,我试图把所有的快捷方式,并把他们的目标应用程序的路径到内存中。不过,我碰到的尝试读取Windows安装程序快捷方式的问题(即指向类似C:\Windows\Installer\{90120000-0030-0000-0000-0000000FF1CE}\wordicon.exe的那些 - 微软Office就是一个很好的例子)。我做了一些研究,似乎Windows使用一些幕后的神奇涉及注册表中找到此文件的实际位置。


问:我怎样才能获得在C#中,这些Windows安装程序快捷方式的实际目标?很多来源,我发现我指向IShellLink界面,但我不知道如何用C#中使用它。我宁愿使用Windows API调用(或者,甚至更好,一个.NET库),而不是通过注册表中手动寻找,但我还是要对这个问题的指导意见。

有帮助吗?

解决方案

做更多的研究,我发现了一个简单的答案的此处。它基本上使用的MsiGetShortcutTargetMsiGetComponentPathmsi.dll功能的组合。

其他提示

恐怕IS的IShellLink使用外壳链接Windows的API!壳牌API在很大程度上基于COM的。

但值得庆幸的是,COM互操作工作得非常好于.NET。这个网站通常是一个很好的资源:

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top