ライブラリ

2021年1月17日

fIE_Quit (IEを確実に殺す方法)

IEのゴースト現象について、
自分の経験を基に不明なデバッグを減らすIEの閉じ方を
需要ありそうなので記載しておきます。

IE起動→スクレイピング→IE閉じる
の繰返しでたまにIE起動時でNGになることがあります。
原因は
閉じた後も裏でIEのプロセスが暫く残る事がある
ということが判明(・・;)
※他の何かが原因のケースがあるかもですが、自分の経験として。

そして対応方法として
IE.Quitの前にプロセスIDを取得しておき、
Quit後にプロセスを直に殺して対応しました。

WinAPIが多くなるのが難点です(^_^;)



使う【WinAPI】はこんな感じです~

GetWindowThreadProcessId
ウィンドウハンドル(IE.hWnd)からプロセスIDを取得

IsWindow
ウィンドウが生きてるか判定 ※IEが閉じるまで念の為に待つ用

OpenProcess
プロセスIDからプロセスのハンドルを取得

TerminateProcess
プロセスを殺す

※他にもっと簡単に解決できる方法があるかもなので、あくまで1つのケースとして
-------------------<以下、VBAソース>----------------------------------------------------------

IE   2021/01/17   shono