• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Cokkieを削除するコマンド(IE)についてプログラムで実現したい)

Cokkieを削除するコマンド(IE)についてプログラムで実現したい

このQ&Aのポイント
  • Internet ExplorerでCookieを削除する方法についてのプログラム制作についてアドバイスをお願いします。
  • 現在、C#を使用してCookieの削除を試みていますが、再起動が必要な点に課題を感じています。
  • Cookieフォルダを手動で削除した場合にはブラウザの再起動が必要ですが、インターネットオプションから削除した場合にはすぐに無効になる仕組みです。

質問者が選んだベストアンサー

  • ベストアンサー
  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答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/aa383928.aspx

maideincc
質問者

お礼

すばやい返答ありがとうございました。 この回答を拝見させていただく限りでは、実現可能そうですね。 ただ自分はプログラミングに関して知識が乏しいので、実装に移るまで時間がかかるかと思われますので、先にお礼だけ述べさせていただきます。実装したらまた書き込みをさせていただきます。 ご丁寧にありがとうございました。

maideincc
質問者

補足

あとまた質問で申し訳ないのですが、 自分がNo2で参考にさせていただいたプログラムでよく分からないのが、グループとエントリーという言葉なんです。 グループは、関連するキャッシュの塊で エントリーは削除されるべきグループ?? 初歩的な質問で申し訳ありません。 もっともっと何度もプログラムを見直してみます。

その他の回答 (3)

  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.4

ANo.3の補足への回答です。 私も"Cache Groups"については良くわかってませんが、たぶんグループを作ると、そのグループ内だけでキャッシュを再使用できたり、まとめて削除できたり、便利なこともあるのでしょう。しかし、どうやらIEでは使っていないようです。 エントリとはグループに属する/属さないに関わらず、一つの一時ファイル、Cookie、履歴のキャッシュのことを指していると思います。 FindFirstUrlCacheEntryではグループに属さないエントリを検索します。FindFirstUrlCacheEntryExを使えばGroupIdを指定してエントリを検索できるようです。 通常はFindFirstUrlCacheEntryを使用して"URLs that do not belong to any group"を処理すれば良いのではないでしょうか。

maideincc
質問者

お礼

すばやい返答ありがとうございました。 色々いじくってみたいと思います。 ご丁寧な回答ありがとうございました。

maideincc
質問者

補足

お久しぶりです。色々参考になる意見ありがとうございました。 自分なりにいじくってみたのですが、うまくいきませんでした・・・。 IntPtrによってIpszSourceUrlNameとIpszLocalFileNameがどのような型で、どのようにURLとファイル名が保存されているのか分かりません・・・。Cの変数なら多少は分かるのですが・・・。 自分の中での解釈では、IpszSourceUrlNameとIpszLocalFileNameの中に入っている目的のファイルをMarchalで検索してstringに保存するということをANo.3でおっしゃっていたと捉えているのですが・・・。 もしよろしければ、ANo.3の回答でのFile.Copyとリスト表示が成功したサンプルプログラムを参考にさせていただけないでしょうか?

  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.2

C#のサンプルを見つけました。深く解読していないのですが私は"Group"を意識せずに検索しています。「WebBrowser コントロールをホストする場合」は意識する必要があるのだと思われます。 HOW TO: アプリケーションがビジュアルC#.NETの WebBrowser コントロールをホストする場合、キャッシュを消去します。 http://support.microsoft.com/kb/326201/ja

maideincc
質問者

お礼

早速のご回答ありがとうございました。 2005では動かなかったのですが、2003で実行するとTemporary Internet Filesの内容を削除することに成功しました。どうもありがとうございました。 今度は全てではなく、指定したファイルだけを他のフォルダに移動ということをやってみたいのですが、自分なりにプログラムを解読してみたのですが、難しくてうまく解読できず、実行に移れませんでした。(やはり当初の目的としては削除目的のCookieだけを何とかしたかったので) もし、お時間があれば、Temporary Internet Filesの中にある指定のファイルを他のフォルダに移動させる方法をお教え願えませんでしょうか? 質問ばかりで申し訳ありません。

  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答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?PostID=764786&SiteID=1

関連するQ&A

専門家に質問してみよう