気楽なソフト工房

プログラミングについていろいろな記事を書いています。



mykonos2008

Author:mykonos2008
システムエンジニアとして働いている30代の会社員です。
仕事や趣味でプログラムを書いている方の役に立つ記事を書いていきたいと思っています。
ご意見、ご感想はこちらまで
If you are an english speaker,Please visit my english blog.

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
本日は、C#からIEの履歴にアクセスするためのTipsを紹介します。

IEの履歴にはCOMインターフェース「IUrlHistory」を使用すると、アクセスできます。
このコンポーネントからIEの履歴の一覧を取得したり、履歴を削除(正確にはクリア)したり、
履歴を追加したり(あまり使わないと思いますが)することが出来ます。

そして、大変すばらしいことに「IUrlHistory」のC#用Wrapperクラスを
提供してくれている方がいます。

「IUrlHistory」のC#用Wrapperのダウンロード

Wrapperライブラリはソースコード形式で提供されていますので、
ダウンロードしたファイルを展開して、「UrlHistoryLibrary」プロジェクトをビルドします。

そして、生成されたアセンブリ「UrlHistoryLibrary.dll」を、利用するプロジェクトから参照設定すれば
Wrapperライブラリを使用できるようになります。

以下は、履歴の一覧を取得するコードです。
using UrlHistoryLibrary; //Wrapperライブラリ

・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・
    public partial class MainWindow : Window
    {
        private UrlHistoryWrapperClass urlHistory;

        public MainWindow()
        {
            //Wrapperクラスをインスタンス化
            urlHistory = new UrlHistoryWrapperClass();
        }

・・・・・・・・・・・・・・・・・・
        public  List<STATURL> GetHistoryList()
        {
            List<STATURL> historyList = new List<STATURL>();

            //履歴の一覧の列挙を取得
            UrlHistoryWrapperClass.STATURLEnumerator enumerator
                                         = urlHistory.GetEnumerator();

            //1件ずつ列挙する
            while (enumerator.MoveNext())
            {
                historyList.Add(enumerator.Current);
            }

            return historyList;
        }
    }

「STATURL」は1つの1つの履歴レコードの情報を管理する構造体オブジェクトで、
この構造体から履歴のURLやTitle、最終訪問日などの情報にアクセスすることが出来ます。

次に履歴の削除について、紹介します。
履歴の削除には、ClearHistory()を使用してユーザの全ての
履歴を削除してしまう方法と、DeleteUrl(String url)を使用して
指定された履歴のみを削除する方法があります。

後者のDeleteUrlの方が使い勝手が良さそうなのですが、
以下のページにも記述されている通り、このメソッドでは、
IEの履歴フォルダーのエントリーを削除することが出来ません。

http://support.microsoft.com/kb/327569/ja

実質的には「DeleteUrl(String url)」は役に立たないメソッドのようです。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://csfun.blog49.fc2.com/tb.php/96-c90b1640

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。