タイトル | : Re: IE8で複数起動されたブラウザを強制終了したい |
記事No | : 11036 |
投稿日 | : 2013/02/05(Tue) 00:09 |
投稿者 | : VBレスキュー(花ちゃん) |
> サブタイトル??が > 取得できずにIEブラウザが終了しない場合があります。
このサブタイトルとはどのようなものでしょうか? HTML ファイル上に右クリックした時のプロパティのダイアログの上方に表示される ものを指しておられるのでしょうか?
下記で取得できますか? できないとなると、URL で判断するとかできませんか? 逆に全て閉じて必要なものを再起動するとか。
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim objWindows As SHDocVw.ShellWindows Dim objIE As SHDocVw.InternetExplorer Dim intLoop As Integer
objWindows = New SHDocVw.ShellWindows For intLoop = objWindows.Count - 1 To 0 Step -1 objIE = objWindows.Item(intLoop) If ("HTMLDocumentClass" = TypeName(objIE.Document)) Then Debug.Print(objIE.Document.Title) If objIE.Document.Title = "削除したいタイトル名" Then '該当するIEブラウザであれば終了させる処理 objIE.Quit() End If End If ' System.Runtime.InteropServices.Marshal.ReleaseComObject(objIE) ' objIE = Nothing Next ' System.Runtime.InteropServices.Marshal.ReleaseComObject(objWindows) ' objWindows = Nothing End Sub
※ この場合、このプログラムを実行したからと言って、タスクマネージャに iexplore.exe が 増えるわけではないので、変に ReleaseComObject を実行すると逆にエラーが発生し、OS を 再起動しないと直らない場合の弊害の方が多いので、コメント にしておいて下さい。 但し、終了させた場合、その分タスクマネージャから iexplore.exe が消えている事を確認 しておいて下さい。 私のテスト結果では、このプログラムにおいては、ReleaseComObject を実行しない方が問題が 発生しなかった事、又、IE を操作する場合、Option Strict Off で実行時バインディング (レイトバインディング)で操作する方が無難かと思います。 もう少し、テストしてからサンプル投稿用掲示板の方にでも投稿します。 2013/02/07/ 9:32 追加修正
サンプル投稿用掲示板の方に投稿した分 http://www.hanatyan.sakura.ne.jp/patio/read.cgi?no=333
|