.NET: ショートカットの内容を取得する

.NET

簡単なウェブブラウザを作ろうと思って、Internet Explorerのブックマークを読み込む方法を調べていました。IEのブックマークはご存じの通り、ただのショートカットです。順番をどう記憶しているのかはまだわかりません。ご存じの方は教えてください。

さて、ショートカットですが、検索してみると、Windows Script Host(WSH)というものと、ShellLinkというものの二通りの方法で作成・取得できるところまではわかりました。WSHのほうが断然簡単。ということで、DOBON.NETさんの記事を参考にソースを書いてコンパイル。ところが通りません。WSHライブラリへの参照が曖昧というエラーが出ましたが、どうにも理解できないエラー内容なので解決できませんでした。

仕方なく、ShellLinkのほうを試してみようといろいろと調べてみたところ、こちらのサイトで.NETのラッパーが紹介されていました。なかなか長いソースですが、落ち着いて読めば理解できます。今度はうまくコンパイルも通り、無事ショートカットの内容を取得できました。

紹介されているサイトには詳しく書いてないことを補足すると、アイコンは、ファイル名がIconLocation.Fileに入っていて、空文字列の場合はexeに埋め込まれているものを使っているようです。IconLocation.Fileに文字列が設定されている場合(たとえばshell32.dll)、IconLocation.Indexに何番目のアイコンかが入っています。

無事ショートカットの内容を取得できたので、いよいよIEのブックマークです。デスクトップにURLのリンクを作成していざ実験。ところが、どうやっても内容を取得できません。さて困った。またネットで調べます。すると、先ほどのDOBON.NETさんの記事に衝撃的なことが書いてありました。URLのショートカットは、ただのテキストファイル、と。最初によく読まなかったのが悪いのですが、いったいこの数時間はなんだったんだ!


« »

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

« »