DOBON.NET DOBON.NETプログラミング掲示板過去ログ

IEの履歴の削除

  • 題名: IEの履歴の削除
  • 著者: kan
  • 日時: 2007/09/09 8:04:43
  • ID: 20460
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[XP,VB.NET 2002]
分類:[.NET]

お世話になります。
当方、IEの履歴の削除方法が分からず苦しんでおります。
アドレスバーの履歴はレジストリでどうにか削除できました。

VB6やVB.NET 2005のソースは見つけたのですが、
2002での方法が分かりません。

IUrlHistoryStg2のClearHistory?
どこを調べてもこれを使うようにという情報ばかりなのですが、
当方、知識不足で使い方がまったく分かりません。


また、履歴が保存されているフォルダは
\Documents and Settings\[ユーザー名]\Local Settings\History
のようですが、一時ファイルと同じく特殊フォルダのようです。

本当の場所は他のフォルダ?またはレジストリなのでしょうか。
できれば、暗号化されていたりしても結構ですので、
実際に保存されている場所も、ご存知でしたら教えて頂けると助かります。


いろいろ調べたり、当方の知識内で実験したりしたのですが、
どうしても解決できません。どうかお力をお貸しください。
よろしくお願いします。
http://www.google.com/search?hl=ja&lr=lang_ja&oe=utf8&q=iurlhistorystg2+clearhistory
これ以上ないほど具体的なのが日本語限定でもすぐ見つかりましたが……?

実際に保存されている場所ってのはおそらく意味がないでしょう。
■No20461に返信(Hongliangさんの記事)
> http://www.google.com/search?hl=ja&lr=lang_ja&oe=utf8&q=iurlhistorystg2+clearhistory
> これ以上ないほど具体的なのが日本語限定でもすぐ見つかりましたが……?

ご返信有難うございます。
もちろん、Googleでの検索は何度も実行しておりますが、そのリンクでも、
VB6やVB.NET 2005のソース(2002では使えないソース)しか見つかりません。

お詳しい方でしたら、その情報だけで2002での方法も
お分かりになるのかもしれませんが、
知識不足の当方には、どれだけ努力しても全く理解できません。


> 実際に保存されている場所ってのはおそらく意味がないでしょう。

たしかに、あまり意味はないかもしれませんが、
「一応知っておきたい」ということもありますので、
もしご存知の方がいらっしゃいましたら、教えて頂けると助かります。


よろしくお願いします。
2005 のコードは大体 2002 でも通用するというのはご存知だと思います。
で、
http://dobon.net/vb/bbs/log3-27/15894.html
魔界の仮面弁士さんのインターフェイス定義があって目を引きますが、UInteger 辺りは 2005(VB8) で追加された要素でそのままは使えませんね。
// あと問題になるのは FILETIME 位だと思うけど、これも System.Runtimer.InteropServices に定義がある。

確かに目は引きますが、その下のほうにもうひとつ、タイプライブラリを使った方法がかかれてますよね?
  • 題名: Re[4]: IEの履歴の削除
  • 著者: kan
  • 日時: 2007/09/11 21:25:11
  • ID: 20479
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
> http://dobon.net/vb/bbs/log3-27/15894.html
> 魔界の仮面弁士さんのインターフェイス定義があって目を引きますが、UInteger 辺りは 2005(VB8) で追加された要素でそのままは使えませんね。

よく分からないので、当方で調べた知識内で、
全てUInt32に書き換えてみました。


> // あと問題になるのは FILETIME 位だと思うけど、これも System.Runtimer.InteropServices に定義がある。

ComTypesがなかったので惑わされていましたが、
InteropServices直下にあるのを発見しました。


Public Shared SIZEOF_STATURL As UInteger = CUInt(Marshal.SizeOf(GetType(STATURL)))
最後に残るエラーはこの部分なのですが、
「構造体メンバの初期化子は、定数に対してのみ有効です。」と出ます。

Structure内で変数に代入などはしてはいけないということのようで、
さらにCUIntも使えないので、よく分からないながらも、MSDNを見たりしながら、
 Public Shared SIZEOF_STATURL As Integer
 Sub New(ByVal Tval As Integer)
  SIZEOF_STATURL = Marshal.SizeOf(GetType(STATURL))
 End Sub
このように書き換えたところ、エラーはなくなりました。正しいのでしょうか。


書き換えたプログラムを実行すると、
「PublicKeyToken=null から型 UrlHistoryImpl を読み込めません。」
といったエラーが出て、やはり動きません。


当方の知識ではどうしても解決できません。
よろしくお願いします。


> 確かに目は引きますが、その下のほうにもうひとつ、タイプライブラリを使った方法がかかれてますよね?

今回、他人のものは使わない方法で探していました。
書き忘れていました。すみません。
  • 題名: Re[4]: IEの履歴の削除
  • 著者: kan
  • 日時: 2007/10/07 6:03:19
  • ID: 20678
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
> タイプライブラリを使った方法がかかれてますよね?

やはり2002ではどうしてもできないので、
一応タイプライブラリでの方法も試してはいますが、

> http://dobon.net/vb/bbs/log3-27/15894.html

こちらの方法でダウンロード、解凍したタイプライブラリを参照追加しようとすると、
「'[ファイルパス]' への参照を追加できませんでした。 ActiveX タイプ ライブラリ '[ファイルパス]' のラッパー アセンブリを作成できませんでした。このライブラリを登録する必要があります。」
といったエラーが発生し、参照追加できません。

調べた範囲で、レジストリへの登録が必要といった情報があったのですが、
レジストリへの登録が必要となってしまうのでしょうか。

配布する際にインストーラで登録するなど、しきいが高くなってしまうので、
できればレジストリは使わない方法でできればと思っているのですが・・・

また、タイプライブラリを用いて実現できたとして、
配布の際に著作権などは問題にならないでしょうか。


理想としては、タイプライブラリなどは用いず、
プログラムソース、または既存ライブラリの参照のみで実現することです。

最初の質問からまもなく1ヶ月が経過するほど長く続いてしまっていますが、
ご存知の方いらっしゃいましたらご教授ください。よろしくお願いします。

DOBON.NET | プログラミング道 | プログラミング掲示板