WebBrowser がブラウジングを完了した後、WebBrowser コントロールの履歴をクリアしたいと考えています。
2 に答える
実は、歴史には2つのタイプがあります。1 つは「訪問した」ページのリストで、もう 1 つは IE の履歴ユーザー インターフェイスに表示される実際の履歴です。
訪問したページのリストを削除する場合は、DeleteUrlCacheEntry を使用して各項目を削除する必要があります。FindFirst/NextUrlCacheEntry API を使用してループすることで、これらのアイテムが作成された時刻と日付にアクセスできるため、ブラウザー セッションの開始後および終了前に作成されたアイテムのみを削除できます。
FindFirst/NextUrlCacheEntry および DeleteUrlCacheEntry 情報については、オンラインで使用できる事前に記述されたコードがあり、これらのキャッシュ エントリをループするときに削除するアイテムを決定するフィルターを簡単に作成できます。
さらにお手伝いできることがあればお知らせください。
コントロールの履歴状態System.Windows.Forms.WebBrowse
は内部的なものであり、直接変更することはできません。すべてのアクションは、 メソッドGoBack
とGoForward
メソッドを介して実行されます。
CanGoBack
プロパティとCanGoForward
プロパティを false に設定することで、ユーザーが前後に移動するのを防ぐことができます。AllowWebBrowserDrop
、WebBrowserShortcutsEnabled
およびIsWebBroserContextMenuEnabled
プロパティも変更する必要があります。
履歴はこれらのメソッド、プロパティ、およびユーザー アクションによってのみ公開されるため、ユーザーが操作できないため、内部履歴状態をクリアする必要はありません。セッション履歴 (つまり、戻る/進むボタン) は、「ブラウザー履歴」 (IE の [履歴] パネルに表示されるもの) とは別の概念であることに注意してください。
他のプログラムに含まれる WebBrowser インスタンスが Windows ユーザーの IE 履歴ファイルに書き込む可能性があることに注意してください。ただし、確実なことはわかりません。もしそうなら、それについてあなたができることは何もないと思います。