こんにちわ。
VB .Netでソフトを開発しているmepと申します。
開発環境は下記の通りです。
OS:Wndows Vista Home Premium
言語:Visual Basic 2008 Express Edition
IE8で「お気に入り」をHTMLファイルとしてエクスポートすると下記のような内容のファイルが出力されます。
-------------------------------------------------------------------
~省略~
<DT><H3 FOLDED ADD_DATE="1204881714">Dell</H3>
<DT><A HREF="
http://www.google.co.jp/ig/dell?hl=ja&client=dell-row&channel=jp&ibd=2071206" ADD_DATE="1240828680" LAST_VISIT="1258101540" LAST_MODIFIED="1258101540" ICON_URI="http://www.google.co.jp/favicon.ico">Dell Start Page.url</A>
~省略~
-------------------------------------------------------------------
このHTMLファイルと同様のファイルをVB .Netで作成できないかな?と思い、現在作成中なのですが、
このファイルの中で「ICON_URI」という属性(?)がありまして、この値をどこから取得すればよいのかわからず悩んでおります。
方法として、「お気に入り」フォルダからフォルダとURLファイルを全て取得して、そのフォルダ・ファイルのプロパティを取得する、
という処理で考えております。下記のコードです。(Shell32を利用してます。)
---------------------------------------------------------------------
Dim URLFolderFileName as String = "C:\Users\username\Favorites\Dell\Dell Start Page.url"
Dim FolderName As String = ""
Dim FileName As String = ""
Dim shell As New ShellClass()
Dim fol As Folder
Dim item As FolderItem
FolderName = Path.GetDirectoryName(URLFolderFileName)
FileName = Path.GetFileName(URLFolderFileName)
fol = shell.NameSpace(FolderName)
item = fol.ParseName(FileName)
'-- プロパティの個々の要素を取得
Dim url As String
Dim last_visit As Integer
Dim last_modified As Integer
Dim icon_uri As Object = ""
url = fol.GetDetailsOf(item, 188) 'URL
add_date = DateToClockTick(File.GetCreationTime(URLFolderFileName)) '作成日
last_visit = DateToClockTick(File.GetLastAccessTime(URLFolderFileName)) 'アクセス日
last_modified = DateToClockTick(File.GetLastWriteTime(URLFolderFileName)) '更新日
'-- ICON_URIのプロパティのインデックス値が不明のため、試験的に全プロパティを表示★★
For i As Integer = 0 To 9999
icon_uri = fol.GetDetailsOf(item, i)
If Not String.IsNullOrEmpty(icon_uri) Then
Debug.Print(i & "." & icon_uri)
End If
Next
-------------------------------------------------------------------------------------------
試験的に全プロパティを表示してみましたが、HTMLファイルにある「ICON_URI=」と同じ値は表示されませんでした。
URLファイルからでは取得できないのでしょうか?
ICON_URIの値を取得する方法をご存知の方がいらっしゃいましたら、ご教授お願い致します。
よろしくお願い致します。