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

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

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

ウェブブラウザもどきを作成中


(過去ログ 6 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■6815 / inTopicNo.1)  ウェブブラウザもどきを作成中
  
□投稿者/ スライム 一等兵(23回)-(2006/09/25(Mon) 17:46:52)

分類:[VB.NET] 


分類:[VB.NET] 

WindowsXP,VB2005で簡単なウェブブラウザを作成しています
http://www.microsoft.com/japan/msdn/thisweek/300x10/Phase3/WebBrowser/vb.aspx
を参考にそれにメニューを追加しています。
MenuStripを追加して「新しい窓を開く」や「終了」、「お気に入り」、「ホーム」作りました。
お気に入りなのですが、どうやればお気に入りとして表示が出来るのでしょうか?
色々検索等してみたのですが、発見には至らず皆さんのアドバイス頂きたいです

お気に入りの追加(ms_SYUTOKU)をクリックしたら、表示しているURL(cbo_URL)とフォームの題名(Text)を取得、それをお気に入りにしたいです
Private Sub ms_SYUTOKU_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ms_SYUTOKU.Click
 Dim URL As String
 Dim Text As String
 URL = Me.cbo_URL.Text
 Text = Me.Text
End Sub
URLとフォームのTextは上記の様に取得してます、それをお気に入りとして追加、表示するやり方が分かりません
表示の方法はIEのメニューバーにある「お気に入り(A)」の様にお気に入りの追加(A)の下にどんどん追加していく感じです。フォルダ作成とかは一切無くて構いません。
説明が長くなってしまいましたがどうかよろしくお願いします

0
引用返信 編集キー/
■6818 / inTopicNo.2)  Re[1]: ウェブブラウザもどきを作成中
□投稿者/ 魔界の仮面弁士 中尉(146回)-(2006/09/25(Mon) 18:56:06)

分類:[VB.NET] 

> URLとフォームのTextは上記の様に取得してます、それをお気に入りとして追加、表示するやり方が分かりません

その「お気に入り」は、どのようにして管理する予定でしょうか?
それによって、記述すべきコードも変わってくるかと思います。

1. IE 標準の「お気に入り」をそのまま利用する。
2. Web サービスなどにして、サーバで管理する。(google bookmarks のように)
3. ローカル上に、独自の形式にて管理する。(xml ファイル、データベース等)


もしも独自に管理するのであれば、少なくとも、URL (と名称)の一覧を得る程度の
実装は必要だと思いますが、基本的なファイル入出力(あるいは DB アクセスや
シリアライザなど)の使い方に扱いについては、理解されていますでしょうか。

0
引用返信 編集キー/
■6821 / inTopicNo.3)  Re[2]: ウェブブラウザもどきを作成中
□投稿者/ スライム 一等兵(24回)-(2006/09/25(Mon) 20:12:28)

分類:[VB.NET] 

魔界の仮面弁士さん、お返事ありがとうございます
> 1. IE 標準の「お気に入り」をそのまま利用する。
> 2. Web サービスなどにして、サーバで管理する。(google bookmarks のように)
> 3. ローカル上に、独自の形式にて管理する。(xml ファイル、データベース等)
1番の方法でお願いします
> もしも独自に管理するのであれば、少なくとも、URL (と名称)の一覧を得る程度の
> 実装は必要だと思いますが、基本的なファイル入出力(あるいは DB アクセスや
> シリアライザなど)の使い方に扱いについては、理解されていますでしょうか。
ファイルの入出力までは考えが至りませんでした、ラベルか何かを追加してと検討違いな事を考えていました。
3番のファイル入出力の方法について魔界の仮面弁士さんがお勧めの参照ページがありましたら教えて頂けませんか?
そちらを参考に勉強します

0
引用返信 編集キー/
■6823 / inTopicNo.4)  Re[3]: ウェブブラウザもどきを作成中
□投稿者/ 魔界の仮面弁士 中尉(148回)-(2006/09/25(Mon) 22:20:53)

分類:[VB.NET] 

> 1番の方法でお願いします

うーむ。提示した3種の中では、もっとも一番難易度が高い気も。(^^;
とりあえず、こんな感じとか。

-------------------------
Option Strict Off
Imports System.Runtime.InteropServices

<ComImport(), Guid("64AB4BB7-111E-11D1-8F79-00C04FC2FBE1")> _
Public Class ShellUIHelper
End Class

Module Module1

Sub Main()
Dim url As String = "http://www.google.co.jp/webhp?complete=1&hl=ja"
Dim title As String = "サジェスト"

Dim helper As Object = Nothing
Try
helper = New ShellUIHelper()

MsgBox("お気に入りの整理")
helper.ShowBrowserUI("OrganizeFavorites", 0)

MsgBox("お気に入りの追加")
helper.AddFavorite(url, CObj(title))
Finally
If helper IsNot Nothing AndAlso Marshal.IsComObject(helper) Then
Marshal.ReleaseComObject(helper)
End If
End Try
End Sub

End Module
-------------------------

でもって、取り出しについては……
Dim Path As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
で示されるパスの内容を列挙して、ショートカットを調べるとか。


> ラベルか何かを追加してと検討違いな事を考えていました。
VB2005 で、ApplicationSettings のプロパティ連結機能を使えば、
コントロールの内容を自動セーブ/自動ロードさせる事が可能なので、
その方法でも不可能ではなかったりします。
http://www.microsoft.com/japan/msdn/vs05/vbasic/vbmysettings.aspx


> 3番のファイル入出力の方法について魔界の仮面弁士さんがお勧めの参照ページがありましたら教えて頂けませんか?

ファイル入出力の方法はいろいろありますが、たとえば、XmlSerializer や
BinaryFormatter を使うという方法があります。下記を参照してみてください。

[オブジェクトの内容をXMLファイルに保存、復元する]
http://dobon.net/vb/dotnet/file/xmlserializer.html

[オブジェクトをXMLでシリアライズ]
http://www.atmarkit.co.jp/fdotnet/easyxml/index/index.html

[XML シリアル化の概要]
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpguide/html/cpconintroducingxmlserialization.asp
http://msdn2.microsoft.com/ja-jp/library/182eeyhh.aspx


0
引用返信 編集キー/
■6824 / inTopicNo.5)  Re[4]: ウェブブラウザもどきを作成中
□投稿者/ スライム 一等兵(25回)-(2006/09/25(Mon) 23:25:16)

分類:[VB.NET] 

魔界の仮面弁士さん、ありがとうございました
難しそうですね、3つの中で一番簡単そうに見えたのですが驚きです
プログラムが入っているパソコンが手元に無いので、明日試してみます

3番目のxmlファイルの入出力も難しそうですね
まずは一つ一つ頑張ってみます

0
引用返信 編集キー/
■6839 / inTopicNo.6)  Re[5]: ウェブブラウザもどきを作成中
□投稿者/ スライム 一等兵(26回)-(2006/09/26(Tue) 11:07:12)

分類:[VB.NET] 

現在奮闘中です、とっても難しいです
教えて頂いたモジュールを作成、取り出しの為の変数を設置し、参照するPathの設定もしたのですが、何も変化が出ませんでした
メニューバーのお気に入りのクリックイベントとして、そこに記述してみました。
取り出しと表示は別物で、他にも何か記述するべき物があるんでしょうか?
Private Sub ms_favorite_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ms_favorite.Click
Dim Path As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
Path = "C:\Documents and Settings\Favorites"
End Sub

0
引用返信 編集キー/
■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
引用返信 編集キー/
■6853 / inTopicNo.8)  Re[7]: ウェブブラウザもどきを作成中
□投稿者/ スライム 一等兵(27回)-(2006/09/26(Tue) 17:04:02)

分類:[VB.NET] 

魔界の仮面弁士さん、ありがとうございます
上記の方法を見て、2ステップを踏んで表示してみようと考えました
1ステップ:お気に入りをクリックすると、新しいフォームを表示、そのフォームのリストボックスに上記で教えて頂いたやり方でurlファイルを表示。
2ステップ:リストボックスに表示された物をダブルクリックしたら、URLだけを抜き取ってファーム1のリストボックスに表示させる。
以上の様にしました。
しかし、案の定URLを抜き取る部分にて立ち止まってしまいました
どのようにURLを抜き取れば良いのでしょうか?

0
引用返信 編集キー/
■6854 / inTopicNo.9)  Re[8]: ウェブブラウザもどきを作成中
□投稿者/ 魔界の仮面弁士 中尉(153回)-(2006/09/26(Tue) 17:10:12)

分類:[VB.NET] 

> しかし、案の定URLを抜き取る部分にて立ち止まってしまいました
> どのようにURLを抜き取れば良いのでしょうか?

No6846 の 案2, 案3 を採用した場合は、Url を直接抜き出すことができます。
案2 なら GetURL メソッド、案3 なら TargetPath プロパティですね。


No6846 の 案1 を採用した場合は、Url を抜き出す機能は用意されていないので、
Regex クラスを用いて、抜き取った文字列の内容を切り出すようにするか、
あるいは、GetPrivateProfileString API によって取得するなどといった
手順が要求されます。

0
引用返信 編集キー/
■6859 / inTopicNo.10)  Re[9]: ウェブブラウザもどきを作成中
□投稿者/ スライム 一等兵(28回)-(2006/09/26(Tue) 17:47:39)

分類:[VB.NET] 

魔界の仮面弁士さん、ありがとうございます
うむむ、難しいですね。
一応HPは見れるし、ブラウザ作成は止めておいてファイルの読み書きできるように方向転換しようと思います。
色々教えて下さった事とか、参照するページとかじっくり見て勉強してみます。
それからですね、お気に入りは。
勿論諦めるつもりはありませんので、またその時色々教えて下さい
解決・・・は、してませんが、このまま続けてもダラダラになっちゃうので閉じさせて貰います。
スキルも無いのに高望みしちゃった私の間違いでしたねぇ
では、今後ともよろしくお願いします

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -