
Cookieの削除について質問なのですが、
Internet ExplorerでインターネットオプションからCookieの削除を選択した場合は、すぐにそのCookieが無効になりますが、
手動でCookieフォルダの中身を削除した場合、ブラウザ自体を再起動しないと無効にならないようです・・・。(インターネットオプションの方は再起動を行っているのでしょうか?)
私はCookieをインターネットオプションのように削除を行うプログラムを制作したいと考えているのですが、どのようにプログラミングしたら良いのでしょう?
System.IO.File.Delete(削除目的のCookieのアドレス);
C#でこのコマンドを用いてプログラムを制作しているのですが、やはりブラウザ再起動という面で止まってしまっています。
どなたかアドバイスいただけたら幸いです。
No.3ベストアンサー
- 回答日時:
ANo.2のお礼への回答です。
私もC# 2005 Expressでやってみました。サンプルのコードを手直しして、一時ファイル、Cookie、履歴(Visited:)のListBox表示と、ListBoxで選択して削除に成功しました。履歴では削除できないものも検索されるようですが。
FindFirstUrlCacheEntry, FindNextUrlCacheEntryで検索したURLはlpszSourceUrlNameに求まっています。これを下記のようなコードでstringに取り出せば自由自在で、例えば先頭が"Cookie:"かどうかで選別できます。(なぜかFindFirstUrlCacheEntryの第1パラメータの指定には失敗し、全て検索されてしまいます)
.NETの経験には乏しいのでMarshalの使い方が正しいかは自信ありません。
string url = Marshal.PtrToStringAnsi(internetCacheEntry.lpszSourceUrlName);
:
Marshal.FreeBSTR(internetCacheEntry.lpszSourceUrlName);
同様にファイル名はlpszLocalFileNameに求まっていますのでFile.Copyもできました。
また、IEのキャッシュに関する情報が下記にありました。相変わらず"Cache Groups"については良くわかってませんが、私がやってみたところではGroup外の検索で良さそうに思います。
Caching
http://msdn2.microsoft.com/en-gb/library/aa38392 …
この回答への補足
あとまた質問で申し訳ないのですが、
自分がNo2で参考にさせていただいたプログラムでよく分からないのが、グループとエントリーという言葉なんです。
グループは、関連するキャッシュの塊で
エントリーは削除されるべきグループ??
初歩的な質問で申し訳ありません。
もっともっと何度もプログラムを見直してみます。
すばやい返答ありがとうございました。
この回答を拝見させていただく限りでは、実現可能そうですね。
ただ自分はプログラミングに関して知識が乏しいので、実装に移るまで時間がかかるかと思われますので、先にお礼だけ述べさせていただきます。実装したらまた書き込みをさせていただきます。
ご丁寧にありがとうございました。
No.4
- 回答日時:
ANo.3の補足への回答です。
私も"Cache Groups"については良くわかってませんが、たぶんグループを作ると、そのグループ内だけでキャッシュを再使用できたり、まとめて削除できたり、便利なこともあるのでしょう。しかし、どうやらIEでは使っていないようです。
エントリとはグループに属する/属さないに関わらず、一つの一時ファイル、Cookie、履歴のキャッシュのことを指していると思います。
FindFirstUrlCacheEntryではグループに属さないエントリを検索します。FindFirstUrlCacheEntryExを使えばGroupIdを指定してエントリを検索できるようです。
通常はFindFirstUrlCacheEntryを使用して"URLs that do not belong to any group"を処理すれば良いのではないでしょうか。
この回答への補足
お久しぶりです。色々参考になる意見ありがとうございました。
自分なりにいじくってみたのですが、うまくいきませんでした・・・。
IntPtrによってIpszSourceUrlNameとIpszLocalFileNameがどのような型で、どのようにURLとファイル名が保存されているのか分かりません・・・。Cの変数なら多少は分かるのですが・・・。
自分の中での解釈では、IpszSourceUrlNameとIpszLocalFileNameの中に入っている目的のファイルをMarchalで検索してstringに保存するということをANo.3でおっしゃっていたと捉えているのですが・・・。
もしよろしければ、ANo.3の回答でのFile.Copyとリスト表示が成功したサンプルプログラムを参考にさせていただけないでしょうか?
No.2
- 回答日時:
C#のサンプルを見つけました。
深く解読していないのですが私は"Group"を意識せずに検索しています。「WebBrowser コントロールをホストする場合」は意識する必要があるのだと思われます。HOW TO: アプリケーションがビジュアルC#.NETの WebBrowser コントロールをホストする場合、キャッシュを消去します。
http://support.microsoft.com/kb/326201/ja
早速のご回答ありがとうございました。
2005では動かなかったのですが、2003で実行するとTemporary Internet Filesの内容を削除することに成功しました。どうもありがとうございました。
今度は全てではなく、指定したファイルだけを他のフォルダに移動ということをやってみたいのですが、自分なりにプログラムを解読してみたのですが、難しくてうまく解読できず、実行に移れませんでした。(やはり当初の目的としては削除目的のCookieだけを何とかしたかったので)
もし、お時間があれば、Temporary Internet Filesの中にある指定のファイルを他のフォルダに移動させる方法をお教え願えませんでしょうか?
質問ばかりで申し訳ありません。
No.1
- 回答日時:
C#でやったことはありませんが、IEのCookieの削除はDeleteUrlCacheEntry APIで可能です。
再起動しなくても無効になります。FindFirstUrlCacheEntry, FindNextUrlCacheEntryで一時ファイル、Cookie、履歴を検索してリストし、選択したCookieをDeleteUrlCacheEntryで削除できました。Windows98 + Delphi4で作ったものですが、Windows XP Pro SP2 + Delphi7でも動きました。
VistaではCookieがうまく検索できないという情報がありますね。削除もできないかもしれません。
FindFirstUrlCacheEntry and COOKIE_CACHE_ENTRY
http://forums.microsoft.com/MSDN/ShowPost.aspx?P …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するQ&A
- 1 tex のコマンドについての質問です。 問題作成の際に (1) (2) (3) (4) ではなく (
- 2 コマンドプロンプト上で動作するプログラムを別プログラムから操作する方法
- 3 コマンドプロンプトを使ってIE、テンポラリの履歴を削除する方法
- 4 Windowsコマンドプロンプトで、指定拡張子のファイル名の一部(固定文字列)を一括削除したい
- 5 プログラム作成(コンパイル、リンク)でのコマンド
- 6 VisualStudio(C#)2005ExpressEditionなんですが、コマンドラインコンパイラがしようできません(vsvars32.batがありません)
- 7 コマンドプロンプトを使ってIEの履歴削除
- 8 ある操作に対するコマンド文が分りません(UNIX)
- 9 コマンドプロンプト(Pingコマンド)
- 10 (UWSC)HPの画像を保存するプログラムは?
関連するカテゴリからQ&Aを探す
おすすめ情報
人気Q&Aランキング
-
4
2週間ほど前からtokyomotionと...
-
5
ヤフー。トップページに戻ると1...
-
6
ワードで直径4cmの円を作成...
-
7
入力していない文字が勝手に連...
-
8
Google Chrome インターネット...
-
9
Microsoft Edge とは
-
10
Yahoo Japanトップページのアイ...
-
11
パソコン画面が上半分しか表示...
-
12
DELLのパソコンで大文字小文字...
-
13
Yahooメールの内容が表示されない
-
14
メールソフト「Thunderbird」で...
-
15
パソコンの画面上に黒い四角が...
-
16
画面が左寄りになってしまいました
-
17
スペースキーが効かない
-
18
タスクバーにあったOCNが消...
-
19
エクセル文字列で縦書きカタカ...
-
20
QRコード読み取り後、一発でメ...
おすすめ情報