• ベストアンサー

IE操作の際表示ページのキャシュを保存させたくない。

VBやVBSなど、 InternetExplorer.Applicationオブジェクトを 使ってIEを操作して、WEBページを巡回する際。 ページのキャシュが貯まって処理が重くなるようなのですが。 処理中のキャシュを無効にする方法はありませんでしょうか? ■参考 CPUの使用率やメモリは充分空きがあるのに ハードディスクの空き容量を用意していないため。 処理が重くなるようです。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

私にはわかりません。しかしこのレベルの質問になると、プロが必要とするレベルのの課題で、いままでこのコーナーを見ているレベルを超えていると思う。もっと専門家が集う質問場所を探したら。 例えば http://bbs.wankuma.com/index.cgi?mode=al2&namber=30666&KLOG=54 などを見ると、APIしかなく、そこまでスクリプト化されていないのでは。 http://codezine.jp/article/detail/980 にもそんな話題ではないかと思うが、GET,POSTといったより基礎的な 手段で、コントロールするようなことが書いてある。 オフィス以外のVBAの無いソフト(IEはその点中途半端か)との連携は、そんなに簡単じゃないと思う。スクリプトレベルでは出来ないといったほうが真実に近いのでは。 エクセルVBAのように、操作するほとんどのプロパティやメソッドが備わって有るのと違って、IEはVBプログラマに使いやすいようにはなってないのでは。 http://www.ken3.org/vba/backno/vba157.html 程度がこのコーナーの質問話題の限界か? これのMSDNライブラリはどこにあるのだろう。そこを探して、>キャシュを無効にする、コードがなければVBでは難しい(APIなどを探す必要が有る)でしょう。

akaginoyama
質問者

お礼

回答ありがとうございます。 キャシュを一旦別の場所に退避させ 該当処理が終わったら元に戻すと 言う感じで、解決しました。 ご協力ありがとうございました。

その他の回答 (2)

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.2

このあたりが参考になると思います。 http://dobon.net/vb/bbs/log3-27/15894.html

akaginoyama
質問者

お礼

回答ありがとうございます。 キャシュを一旦別の場所に退避させ 該当処理が終わったら元に戻すと 言う感じで、解決しました。 ご協力ありがとうございました。

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.1

IE終了時にキャッシュを削除するようにIEの設定を変更するのが簡単です。 http://sankei.jp.msn.com/economy/it/080721/its0807210903000-n1.htm から抜粋します。 IEを閉じたときにキャッシュを自動削除するよう設定すればいい。「スタート」→「コントロールパネル」→「インターネットオプション」と進み、表示されたパネルで「詳細設定」のタブをクリック。  「設定」のリストで、「ブラウザを閉じたとき、[Temporary Internet Files]フォルダを空にする」にチェックを入れ、「OK」を押せば完了だ。 動作中に行いたいのであれば、自力で消しにいくしかないです。

akaginoyama
質問者

補足

回答ありがとうございます。 私の、説明不足で申し訳ありません。 補足させてください。 ■質問の補足 貯まったキャシュを削除したいわけではなく プログラム実行中に、キャシュが貯まらないように プログラム側から処理したいのです。 もちろん、プログラムが利用した以外のキャシュについては 消さない事が前提なので、 [Temporary Internet Files] フォルダを丸ごと空にすると言う手軽な方法も使えません。

関連するQ&A

  • VBでブラウザを操作するには?

    ■利用環境 WinXP SP3 VB2008 ExpressEdition IE7 ■質問 VB始めたばかりで初心者です。 VBSで行っていたIEオブジェクトの自動操作をVBのフォーム デザインを使ってビジュアル的に作り変えたいのですが MSDNもろくに読めなくて前に進めません。 VBは、イベント駆動と言うのは、理解しているつもりですが、 CreateObject("InternetExplorer.Application") とブラウザコントロールの違いに戸惑っています。 IEオブジェクトとWebBrowserオブジェクトの使い方の違いの事です。 VBSのIEオブジェクトで行っていた操作は、 IE = CREATEOLEOBJ("InternetExplorer.Application") IE.visible = True IE.navigate(URL) IE.document.body.InnerHTML と言う操作をしたいのですが、 できれば、このように私が慣れているIEオブジェクトの操作で ページ表示だけ、VBのブラウザオブジェクトに反映させる事が できれば良いのですが、難しければ、 VBのコントロールのブラウザオブジェクトで これと同じ操作をするにはどうすればよいか 教えて頂けませんでしょうか?

  • IE(このページは表示できません)

    IEのトラブルで教えてください。 特定のページ(ダイジェスト認証が必要画面)で 「Internet Explorerではこのページは表示できません」 というエラーが表示されます。 "Internet Explorerではこのページは表示できません"のエラーについては、 色々な情報がホームページで紹介されていますが、 やはり ・インターネット一時ファイルと履歴の削除 ・アドオンの無効化 ・パーソナルファイアーウォール などが原因として挙げられますでしょうか? もしこのような特定のURLの場合に他に考えられるような原因がありましたら 教えて頂けますでしょうか? 宜しくお願い致します。 因みにWinXP&IE8です。

  • VBでのIE操作

    VBでのIE操作をしようとして色々調べています。 色んなサイトを見ながら途中までは何とかできましたが、どうしてもリンク先を表示できません。 お分かりになる方いましたら、お力添えいただければ幸いです。 状況: Excel2007使用  IE7  VB初心者です。 やりたい内容: VBでIEを立ち上げる ↓ ページからリンクをクリックする (ページ上に画像が貼り付けてあって、そこにURLくっついててハイパーリンクになっている。) (セキュリティの関係でハイパーリンク先を初期で表示することはできない。) ↓ 表示されたページに検索したい項目を入力 ↓ 結果をエクセルに反映する。 以上の作業をVBで組もうと思ってます。 よろしくお願いします。 Option Explicit Sub IE_Test() 'IEの起動 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True '処理したいページを表示します。 objIE.Navigate "(表示したいページ)" 'ページの表示待ち   While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True DoEvents Wend '開かれたIEを探す。 Dim objSHELL As Object Dim objWINDOW As Object Dim newIE As InternetExplorer '調べる項目に対して、、、 For yCNT = 3 To 102 ' If Trim(Cells(yCNT, 1)) = "" Then Exit For 'A列が空白になったらループを抜ける ここがわからない。。。 (画像になっているハイパーリンクをクリックしたい、、、) 'シェルのオブジェクトを作成する Set objSHELL = CreateObject("Shell.Application") Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1) Set objSHELL = Nothing '念のため、新しいウインドウの表示を待つ While newIE.readyState <> READYSTATE_COMPLETE Or newIE.Busy = True DoEvents Wend 'ページが表示されたので、表示された文章に対して、処理を行います。 newIE.document.all("phone_no").Value = Cells(yCNT, 1) 'A列の文字を参照する newIE.document.all("exec").Click '表示されたウインドウ(newIE)からデータをセットする Cells(yCNT, 2) = newIE.document.body.innerText '検索の結果をエクセルに反映 '新しいIE(子IE)を閉じる newIE.Quit Set newIE = Nothing '前のIE(親IE)を閉じる   objIE.Quit set objIE = Nothing Next yCNT End Sub 上記が現在までのできているコードです。 ここにも色々間違いがある可能性もあります。 ご指摘頂けましたら幸いです。 よろしくお願いします。

  • VBSCRIPT + WSHで WEBからのファイルをダウンロード

    こんにちは。 下記の様なスクリプトを作りたいのですが、どなたかいいアイデアはないでしょうか。 [やりたいこと] WEBを巡回し、条件にあてはまるファイル(PDFやmp3など)をダウンロードする。 (VBS+WSHで) 今はInternetExplorer.Application で巡回してソースからファイル名を見つけ、それをCUI版Gethtml等のソフトで落としたりしています。 ただ、ページにJavaScriptなんかがつかってあったりすると、うまくいきません。 また、ページを巡回した後にキャッシュから手作業でファイルを拾ってくる方法も試したのですが、せっかく途中まで自動化しても手作業が入ってしまうところがいまいちです。 InternetExplorer.Application で巡回して直接ファイルを任意のフォルダにダウンロードする方法をご存知の方、教えていただけませんか。

  • VBSでIE操作

    VBSでIEの操作を自動化するプログラムを作成しています。 ドロップダウンリストを選択する処理で、サイト側のソースが「name="birthday[Y]"」や「name="birthday[m]"」、「name="birthday[d]"」だった場合、単純な指定では動作しないのでしょうか? VBS上では「IEオブジェクト.Document.forms(0).("birthday[Y]").value = "1983"」という記述で試してみたところ、「オブジェクトがありません。:'Y'」とエラーになってしまいます。 birthday[?]は配列的なもので特別な指定の仕方があるのでしょうか? プログラムを組み始めて間もないため記述に不足等あるかと思いますが、アドバイスいただけると幸いです。

  • IEで「ページを表示できません」

    Internet Explorerが使えなくなりました。ホームページを開こうとしても、「ページを表示できません・・・・サーバーが見つからないか、DNS エラーです。」の表示が出てつながりません。いろいろ検索しては見たのですが、よくわからず、パソコン自体も古いものなのでOSとかも違い解決できませんでした。 どなたか回答お願いします。 ちなみに、 キャッシュ、クッキー、履歴はクリアしました。 IEのインターネットオプションも標準、規定値に戻しました。 Netscapeでは正常にページが見れます。 メール(Outlook Express)は送受信できます。 <PC環境> Windows98SE NEC ValueStar Internet Explorer6 eoホームファイバー その他、必要事項があれば言ってください。

  • VBSでIEの操作

    私は3年以上前にC言語とJAVAを仕事の研修で1年ほど受けた程度です。 それ以来全くプログラミングをしてません。 VB・VBSは使ったことがありません。 今の仕事場で業務で使うことを目的としております。 OSはXPを想定しています。 こんなプログラムを考えております。 1.IEを起動して自社サイトを開く 2.20回更新する 3.自社サイトの違うページに移動する 4.20回更新する 5.IEを終了させる。 自分で調べてここまでできたのですが… ie.Visible = Trueの次にFOR文を使用するとエラーになってしまいました。 use_ie Sub use_ie() Set ie = CreateObject("InternetExplorer.Application") ie.Navigate "http://www.google.co.jp/" ie.Visible = True WScript.sleep(1000) ie.Refresh ”↑ここを20回繰り返したいです。 ie.Navigate "http://www.yahoo.co.jp/" ie.Visible = True ”↑ここも同様に20回繰り返したいです。 End Sub 以上 初心者で大変申し訳ございませんがご教授お願いいたします。 あと 予断ですが更新の処理をie.RefreshとF5キーを割り当てるやり方で何か違いがあるのでしょうか?

  • IE8でwebページが表示されない

      現在はFirefox ver3.5を使用しているのでそこまで問題ではないですが、IE8がネットに接続出来ているのにも関わらず、webページが表示出来なくて困っています。 念の為最初に大体のスペックを書いておきます。 OS: XP home edition CPU: Corei7 920 Mem: 3GB   去年の11月頃にPCを自作して、今年の5月辺りまでIE6で問題なくネットが出来ていたのですが、ふと何を思ったかIE8をインストールしてしまいました。 それからIE(6,8)でwebページを見られなくなってしまいました。 例えばgoogleで検索するとします。 1.検索結果が出ます。(もちろん正常に動いています) 2.検索結果から任意のページリンクを押下します。 3.Internet Explorerではこのページは表示できません とエラーメッセージが出ます。(時間が経つとgoogleすら表示出来なくなります)   この現象でおかしいのは、検索結果が出るのでネットには繋がっていることです。   googleのトップから、"ニュース"とか"メール"のアイコンを押下しても見ることは出来ません。URLを直接入力しても、見ることは出来ません。 見られるのは、起動した時に開いているgoogleのトップと、検索結果だけです。 試したこととしては ・セキュリティソフトを無効にする(NOD32を無効に) ・Windowsファイアーウォールを無効にする ・IE8で互換モードに指定してそのページを表示してみる ・inPrivateで許可に入れてそのページを表示してみる 以上を試しましたが、出来ませんでした。 IE6に戻してみればとIE8をアンインストール後、IE6を入れなおしてみても、やはり見れなくなっていました。 長々と申し訳ありませんが、解決方法を教えていただけないでしょうか。

  • IE操作で次ページを別タブに表示するには?

    VB.NET(VB 2010 Express)でIE(Ver.9)をWebBrowserコントロールではなく直接操作しています。 下記のコードのように、あるサイトのトップページを表示し、それにユーザID、パスワードを入力し、ログオンボタンをクリックして次のページを表示します。 次のページはトップページと同じタブに表示されますが、これを別タブに表示するにはどうすればよいのでしょうか?ご教示頂きたくよろしくお願い致します。 objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate("https://xxxxxxx.co.jp")    '表示ページのソース読込み完了を待つ(略) objIE.Document.all("ACCOUNT").Value = "yyyyyy" 'ユーザIDを入力 objIE.Document.all("PASSWD").Value = "zzzzz"   'パスワードを入力 objIE.Document.all("btn").Click()              'ログインボタンをクリック     '以下表示した次ページのソースを処理

  • VBでのIE操作

    VBでのIE操作をしようとして色々調べています。 色んなサイトを見ながら途中までは何とかできましたが、どうしてもリンク先を表示できません。 お分かりになる方いましたら、お力添えいただければ幸いです。 状況: Excel2007使用  IE7  VB初心者です。 やりたい内容: VBでIEを立ち上げる ↓ ページからリンクをクリックする (ページ上に画像が貼り付けてあって、そこにURLくっついててハイパーリンクになっている。) (セキュリティの関係でハイパーリンク先を初期で表示することはできない。) ↓ 表示されたページに検索したい項目を入力 ↓ 結果をエクセルに反映する。 以上の作業をVBで組もうと思ってます。 よろしくお願いします。 Option Explicit Sub ie_test() 'IEの起動 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True '処理したいページを表示します。 objIE.navigate "処理したいページ" 'ページの表示待ち While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True DoEvents Wend '開かれたIEを探す。 Dim objSHELL As Object Dim objWINDOW As Object Dim newIE As InternetExplorer Dim wait_time As Date Dim yCNT As Long Dim i As Integer '表示待ち wait_time = DateAdd("s", 2, Now()) Do While Now() < wait_time DoEvents Loop 'リンクの貼ってある画像をクリック For i = 0 To objIE.document.images.Length - 1 If InStr(objIE.document.images.Item(i).outerHTML, "image/btn131b1.gif") > 0 Then objIE.document.images.Item(i).Click End If Next '表示待ち wait_time = DateAdd("s", 2, Now()) Do While Now() < wait_time DoEvents Loop 'シェルのオブジェクトを作成する Set objSHELL = CreateObject("Shell.Application") Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1) Set objSHELL = Nothing '新しいウィンドウのログインボタンを押す Dim objINPUT As Object 'Inputタグ格納用 For Each objINPUT In newIE.document.all.tags("INPUT") If objINPUT.Value = "ログイン" Then objINPUT.Click Exit For End If Next '調べる項目 For yCNT = 3 To 1002 ' If Trim(Cells(yCNT, 1)) = "" Then Exit For 'A列が空白になったらループを抜ける 'ページが表示されたので処理を行います。 newIE.document.all("phone_no").Value = Cells(yCNT, 1) 'A列の文字を参照する newIE.document.all("exec").Click ※ここでオブジェクト変数。。。のエラーが発生する※ '表示待ち wait_time = DateAdd("s", 2, Now()) Do While Now() < wait_time DoEvents Loop '表示されたウインドウからデータをセットする Cells(yCNT, 2) = newIE.document.body.innerText '検索の結果をエクセルに反映 '新しいIEを閉じる newIE.Quit Set newIE = Nothing '前のIEを閉じる objIE.Quit Set objIE = Nothing Next yCNT End Sub 初心者なので色々調べたのですがわかりませんでした。。。