C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 6 を表示中)
■6846 / )  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
返信 編集キー/


管理者用

- Child Tree -