.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のショートカットは、ただのテキストファイル、と。最初によく読まなかったのが悪いのですが、いったいこの数時間はなんだったんだ!
2013年12月30日
« サイトの全貌が今明らかに! WordPress: SyntaxHighlighterの不具合 »