« ファイルの場所を開く。 | トップページ | Vistaで、IE.Navigate()する。IEオブジェクトを乗り継ぐ。(その4) »

2010年3月27日 (土)

Vistaで、IE.Navigate()する。IEオブジェクトを乗り継ぐ。(その3)

IEオブジェクトが遷移するとき、一時的にShellWindowsに同居するようなので、早目にhwndをキーに乗り移ります。
旧オブジェクトが消えてから乗り移るより、タイミングエラーが少なくて済みます。

Set Shell=CreateObject("Shell.Application")
Set ie=CreateObject("InternetExplorer.Application")
ie.Visible=True
hwnd=ie.HWND
ie.Navigate URL
Do
  For Each ix In Shell.Windows()
    If hwnd=ix.HWND And Not ix Is ie Then
      Set ie=ix
      Exit For
    End If
  Next
  If Not ie.Busy And ie.ReadyState=4 Then Exit Do
  WScript.Sleep 100
Loop
MsgBox ie.LocationURL

« ファイルの場所を開く。 | トップページ | Vistaで、IE.Navigate()する。IEオブジェクトを乗り継ぐ。(その4) »