■6846 / inTopicNo.7) |
Re[6]: ウェブブラウザもどきを作成中 |
□投稿者/ 魔界の仮面弁士 中尉(152回)-(2006/09/26(Tue) 12:19:57)
|
分類:[VB.NET]
> 現在奮闘中です、とっても難しいです
標準のを利用するのは、(.NETからだと)面倒だって忠告したのに…。(^_^;
独自ブラウザなら、独自に管理した方がたぶん楽かと思いますよ。 データの形式等も自由に定義する事が出来る分、融通が利きますから。
> 何も変化が出ませんでした > Dim Path As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
パスを取得したら、それを利用するコードを書かなければなりません。
上記行によって、変数 Path に「お気に入り」仮想フォルダの物理ディレクトリの パスが記されますので、あとはそこから、フォルダ列挙およびショートカットを 列挙するコードと、URLショートカット(*.url)の内容を取り出すコードを 自前で記述してやることになります。
そして、この *.url ファイルの内容を取り出すために、幾つか方法があります。
1. 自前で解析(中身は、iniファイル形式のテキストです) →マネージコードで書けますが、将来、管理形式が変更されると弱いです。 http://www.atmark.gr.jp/~s2000/r/rtl/InternetShortcut.html
2. IUniformResourceLocator インターフェイスを使う →正攻法です。そのかわり、.NET 向けに作成されたインターフェイスでは ありませんので、呼び出しにはある程度の知識が必要になります。 http://msdn.microsoft.com/workshop/misc/shortcuts/reference/iuniformresourcelocator.asp
3. WshUrlShortcut オブジェクトを使う(COM の解放処理を忘れずに) →VBScript からも呼べるよう、レイトバインドでの呼び出しにも 対応しています。上記 2 種よりは少し使いやすいかも。 http://msdn.microsoft.com/library/ja/script56/html/wsobjwshurlshortcut.asp
参考までに、案1の実装例を書いておきます。
解説用コードという事で、エラー処理や、データの切り出し等は行わず、 単純にファイルの読み込みのみを行わせています。
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, _ ByVal e As EventArgs) Handles MyBase.Load
ListBox1.Items.Clear()
'「お気に入り」フォルダのパスを取得 Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
'拡張子 url のファイルを列挙し、それを ListBox に表示 ListBox1.DataSource = My.Computer.FileSystem.GetFiles( _ path, FileIO.SearchOption.SearchAllSubDirectories, "*.url") End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, _ ByVal e As EventArgs) Handles ListBox1.SelectedIndexChanged
If ListBox1.SelectedIndex = -1 Then Label1.Text = "" Else 'ListBox の内容を取り出す Dim path As String = ListBox1.SelectedItem.ToString()
'url ファイルの内容を Label1 に出力 Label1.Text = My.Computer.FileSystem.ReadAllText( _ path, System.Text.Encoding.Default) End If End Sub
End Class
|
0
|