簡體   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