IEを終了させる

解決


冬みかん  2007-08-19 04:42:26  No: 99329

プロミングからIEを終了させたいのですが。
他のアプリケーションは利くのに
IEだけどうしても終了することが
できません。
コードは
hWnd = FindWindow(vbNullString, " Windows Internet Explorer")
Call PostMessage(hWnd, 18, 0, 0)
ハンドルは取得できているみたいですが、
PostMessageの方が利いていないみたいです。
どうにかしてIEを終了させたいのですが
消す方法はないものでしょうか?
これを修正する方法か別方法なんかがあったら教えてください。
宜しくお願いします。


YAS  2007-08-19 05:02:53  No: 99330

ウィンドウハンドルから終了させる方法については試していません。

ただ,IEを終了させたいだけなら,シェルオブジェクトを取得してIEを検索して,IE.Quit()で終了させることができると思います。


冬みかん  2007-08-19 06:06:21  No: 99331

すいません、shellobjectについて調べましたが
終了するようなメソッドは見つかりませんでしたが?
ちょっと具体的に教えてもらえないでしょうか?


通ってみた  2007-08-19 07:03:19  No: 99332

なんだか全く同じに見えますが

http://madia.world.coocan.jp/vb/vb_bbs/200603/200603_06030023.html


YAS  2007-08-19 20:06:27  No: 99333

IEを1つ閉じるコードは例えば次のようになると思います。
エラー処理などありませんし,確実に動作するか保証できませんが,
一応,実行するたびに開いているIEが1つ閉じます。

シェルオブジェクトにはExplorerも含まれるので,Documentプロパティの
型を調べてIEと区別するのがポイントです。

「Microsoft HTML Object Library」を参照設定してください。

    Const INTERACTIVE = 3
    Dim shell As Object
    Set shell = CreateObject("Shell.Application").Windows
    Dim obj As Object
    For Each obj In shell
        Dim state As Integer
        state = CInt(obj.ReadyState)
        If state >= INTERACTIVE Then
            Dim doc As Object
            Set doc = obj.Document
            If TypeOf doc Is HTMLDocument Then
                Call obj.Quit
            End If
        End If
    Next


YAS  2007-08-19 20:08:40  No: 99334

すいません,先のコードですが,1行抜けていました。
(Call obj.Quitの後のExit For)

    Const INTERACTIVE = 3
    Dim shell As Object
    Set shell = CreateObject("Shell.Application").Windows
    Dim obj As Object
    For Each obj In shell
        Dim state As Integer
        state = CInt(obj.ReadyState)
        If state >= INTERACTIVE Then
            Dim doc As Object
            Set doc = obj.Document
            If TypeOf doc Is HTMLDocument Then
                Call obj.Quit
                Exit For
            End If
        End If
    Next


冬みかん  2007-08-20 03:41:05  No: 99335

回答ありがとうございました。
postmessageの第二引数、WM_QUITをWM_CLOSEにしたら
消せました。
わざわざコードまで書いてくださった
YASさんありがとうございました。
いつか機会があったら上記のコードも
参考にしたいと思います。
ありがとうございました!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加