4

WebBrowser がブラウジングを完了した後、WebBrowser コントロールの履歴をクリアしたいと考えています。

4

2 に答える 2

1

実は、歴史には2つのタイプがあります。1 つは「訪問した」ページのリストで、もう 1 つは IE の履歴ユーザー​​ インターフェイスに表示される実際の履歴です。

訪問したページのリストを削除する場合は、DeleteUrlCacheEntry を使用して各項目を削除する必要があります。FindFirst/NextUrlCacheEntry API を使用してループすることで、これらのアイテムが作成された時刻と日付にアクセスできるため、ブラウザー セッションの開始後および終了前に作成されたアイテムのみを削除できます。

FindFirst/NextUrlCacheEntry および DeleteUrlCacheEntry 情報については、オンラインで使用できる事前に記述されたコードがあり、これらのキャッシュ エントリをループするときに削除するアイテムを決定するフィルターを簡単に作成できます。

さらにお手伝いできることがあればお知らせください。

于 2012-08-31T11:19:29.990 に答える
1

コントロールの履歴状態System.Windows.Forms.WebBrowseは内部的なものであり、直接変更することはできません。すべてのアクションは、 メソッドGoBackGoForwardメソッドを介して実行されます。

CanGoBackプロパティとCanGoForwardプロパティを false に設定することで、ユーザーが前後に移動するのを防ぐことができます。AllowWebBrowserDropWebBrowserShortcutsEnabledおよびIsWebBroserContextMenuEnabledプロパティも変更する必要があります。

履歴はこれらのメソッド、プロパティ、およびユーザー アクションによってのみ公開されるため、ユーザーが操作できないため、内部履歴状態をクリアする必要はありません。セッション履歴 (つまり、戻る/進むボタン) は、「ブラウザー履歴」 (IE の [履歴] パネルに表示されるもの) とは別の概念であることに注意してください。

他のプログラムに含まれる WebBrowser インスタンスが Windows ユーザーの IE 履歴ファイルに書き込む可能性があることに注意してください。ただし、確実なことはわかりません。もしそうなら、それについてあなたができることは何もないと思います。

于 2012-08-31T01:48:54.810 に答える