2009-07-24 11 views
0

背景:私は自分自身でC#をWPFで教えることに決めました。スタートメニューのショートカットとそのターゲットのリストを取得する必要がある小さなアプリケーションを作成しています。それらを保管する。基本的に、私はすべてのショートカットを取り、ターゲットアプリケーションのパスをメモリに入れようとしています。しかし、私は、Windowsインストーラのショートカット(C:\Windows\Installer\{90120000-0030-0000-0000-0000000FF1CE}\wordicon.exe - Microsoft Officeのようなものを指しているもの)を読んでみると問題に遭遇しました。私はいくつかの研究を行いました.Windowsはレジストリを使ってファイルの実際の場所を見つけるための舞台裏の魔法を使用しているようです。C#(WPF)でインストーラショートカットを読む方法


質問:はどのように私はC#でこれらのWindowsインストーラのショートカットの実際のターゲットを得ることができますか?私が見つけた多くの情報源は、IShellLinkインターフェイスを指していますが、C#でどのように使用するのか分かりません。私はレジストリを手動で調べるのではなく、Windows API呼び出し(または.NETライブラリ)を使用したいと思っていますが、私はその問題に関するガイダンスを取っていきます。

答えて

1

より多くの研究を行った後、私は簡単な答えhereを見つけました。基本的にMsiGetShortcutTargetMsiGetComponentPathの機能の組み合わせをmsi.dllとしています。

0

私は恐れています。IShellLinkは、シェルリンクを使用するためのWindows APIです。シェルAPIは大きくCOMベースです。

しかし、COM相互運用機能は.NETでうまく機能します。このサイトは、通常、非常に良いリソースです:

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

+0

C#初心者であるため、リンクは本当に役に立たない。インターフェイスではどうしたらいいですか?私はまた、問題を理解したいと思うので、私にインターフェイスを与えても、かなり役に立たない。とにかくありがとう。 –

+0

すぐに試して試してみましょう。 –

関連する問題