Webブラウザの履歴を作成するには?


shin  2007-01-16 19:14:49  No: 97651

Webブラウザを作っています。
履歴作成で詰まっています。
履歴の作成の仕方の回答をお願いします。
環境  XP
使用言語  VB.NET2003


設計次第  2007-01-16 19:30:59  No: 97652

>履歴の作成の仕方の回答をお願いします。

プログラミングではなく設計次第では?
ファイルに書きだしてもいいし、レジストリに登録しても良いし
どうやって実装したいの?


魔界の仮面弁士  2007-01-16 19:31:45  No: 97653

単純なところでは、NavigateComplete2 など、ページ遷移のイベントにて、
URL を記録しておくとか。

GoBackメソッド等で処理される[戻る][進む]ボタンのことであれば、
使用可/不可の変動を、CommandStateChange イベントで受け取れます。

[戻る][進む]の訪問履歴ということなら、このあたりとか。
http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserTravelLogSample.htm
http://d.hatena.ne.jp/santamarta/


shin  2007-01-16 20:36:26  No: 97654

IEと同じで進んだ先の履歴が残ればよいのですができません。


魔界の仮面弁士  2007-01-16 21:22:26  No: 97655

> IEと同じで進んだ先の履歴が残ればよいのですができません。

と言われましても、それだけではアドバイスのしようがありません。(^^;

どの部分で躓いているのかを、具体的に質問してみてください。


shin  2007-01-16 21:36:12  No: 97656

リストボックスに表示したいのですができません。
そして、閉じると履歴を削除したいのです。

質問はこの二つです。


魔界の仮面弁士  2007-01-16 22:54:20  No: 97657

『リストボックスに表示したい』『履歴を削除したい』といった、
そちらの「仕様(やりたいこと)」はわかりました。
そして、それらをまだ実現できていないという、そちらの状況もわかります。

ですが、「何に困っているのか」については、さっぱり書かれていないので、
やはり回答に困ってしまいます。(そもそも、質問文に主語がありませんし…)

より「具体的に」質問していただければ、こちらも具体的なアドバイスができるかと思います。

・ヘルプ等の意味が理解できなかったのであれば、どのページのどの部分を
  理解できなかったのかを書いてみてください。

・自分なりにコードを書いてみて、それが期待動作しなかったのであれば、
  どのような結果を期待して、それがどうなってしまうのかを、
  現象を再現可能な最低限のコードと共に投稿してみてください。

・どこから手をつければ良いのか分からない状況なら、逆に、どこまでは
  理解できているのかを、分かる範囲で記述してみてください。
  (とは言っても、掲示板で 1 から 10 まで教えるのは無理ですが……)

> リストボックスに表示したいのですができません。

1. 履歴の何を表示したいのでしょうか? 
  URL だけなら、先に提示した方法で取得できますよね。

2. 先の回答の意味がわからなかったのだとしたら、その中のどの部分が
  不明瞭だったのかを、具体的に追加質問してください。

3. 先の回答では目的を果たせないのだとしたら、どのような機能を
  求めているのかを、具体的に教えてください。

4. それとも、ListBox の操作方法がわからない、という事でしょうか?
  項目を追加するには、「ListBox1.Items.Add(〜〜)」が使えます。

> 閉じると履歴を削除したいのです。

1. 何を閉じたときでしょうか。フォームですか?
  フォームだとしたら、VB.NET 2003 では「Closing イベント」に
  削除の処理を書くと良いでしょう。

2. 削除できないのは、ListBox の操作方法がわからないからなのでしょうか?
  もしそうなら、.Items.Add() で登録した内容を、.Items.RemoveAt() で削除できます。

3. 削除したい履歴とは、ListBox に表示した、自己管理の履歴の事でしょうか。
  それとも、InternetExplorer が持つ、標準の履歴ですか?
  後者だとしたら、少々厄介です。先に紹介した URL を参照してください。


shin  2007-01-16 23:20:28  No: 97658

どこから手をつけていいのか分かりません。
訪問履歴についてのものを見ても良く分かりませんでした。
それから、リストボックスにはサイト名で閉じるのはフォームです。
どうもすいません。


魔界の仮面弁士  2007-01-17 00:30:41  No: 97659

まずは、WebBrowserコントロール(AxWebBrowser)を使うのか、それとも、
ブラウザ機能を 0 から自分で作るのかを決定する必要があるのですが、
現在の状況で自作は無理でしょうから、WebBrowser を利用するのが良いでしょうね。

> 良く分かりませんでした。
それは裏を返せば、『少しは分かる部分もあった』という事になるでしょうから、
>> どこまでは理解できているのかを、分かる範囲で記述してみてください。
というお願いを繰り返しておきますね。

このまま、単に「分かりません」という言葉が繰りかえされるだけですと、たとえば
  履歴以外の機能については、問題なく実装できるレベルなのか……とか、
  「イベント」「メソッド」などの開発に必要な用語の意味は理解できるレベルなのか…
といった、shinさんの技術レベルが読み取れないので、当方としても回答しずらいのです。

仕方ないので、先の 13:54:20 時点の投稿では、各パターンに対して、各種の回答を
示しているわけですが、それらの一つ一つを理解できているかどうかの返答や、
質問内容に対する逆質問すら無かったので、こちらも、何を答えれば良いのか…。

で。もしも「良く分かりませんでした。」というのが「全くわかりませんでした。」の
意味だとしたら、先にも書きましたように、1 から 10 まで「すべて」を教えるのは、
掲示板では事実上不可能なので、申し訳ないですが、書籍等を用いるなり、付属のサンプルや
チュートリアルなどを見るなどして、最低限の基礎知識を付けておいて貰わないと、
アドバイスのしようがありません…。m(_ _)m

# ただし、勉強中に分からない点が出た場合は、その内容を「具体的に」示してもらえれば、
# それに対する回答をつける事ができるかと思います。

> それから、リストボックスにはサイト名で閉じるのはフォームです。
「サイト名」というのが、IE のタイトルバーに表示される内容の事だとすれば、
WebBrowser の TitleChange イベントの引数を利用されると良いでしょう。
(Document プロパティから、HTML のタイトル情報を得る方法もあります)

次に「フォームを閉じる」という点ですが、これは、ブラウザコントロールを
貼ってあるフォームと、ListBox を貼ってあるフォームが別物という事でしょうか?

ListBox を貼っているフォームと ブラウザを貼っているフォームとが別物なら、
どちらのフォームであるにしても、先に回答しましたように、Form の Closing を使えば、
フォームを閉じたタイミングで、処理を行う事ができます。
>> フォームだとしたら、VB.NET 2003 では「Closing イベント」

あるいは、ListBox とブラウザの両方が同じフォーム上にあるのだとすれば、
フォーム自体を閉じてしまえば、そこに貼ってあった ListBox の情報も
一緒に消えてしまうでしょうから、履歴を削除する必要自体が無さそうです。

> どこから手をつけていいのか分かりません。
そういうときは、やるべき事を箇条書きにしてみると良いですよ。

手始めに、≪履歴を ListBox に表示する≫ための手順としては…。

0. まず、WebBrowser というものを、どうすれば利用できるのかを調べます。
  (フォームへの貼るまでの手順、そこに Webサイトを表示する方法など)

1. そのコントロールに、私が先に回答した「NavigateComplete2」という
  「ページ遷移のイベント」があるかどうかを確認し、それがどういう時に発生し、
  そのイベント引数に、どのような情報が渡されるのかを調査します。

2. その NavigateComplete2 イベントを使って、表示した URL を取得します。
  (可能であれば、「サイト名」も得たいでしょうけれども、それはとりあえず後回し)

3. 取得した URL を、ListBox の末尾に追加します。

さて、上記までの手順を踏むにあたって、何か躓いている点はありますか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加