2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« IE7 で Shell と IE が分離されました。 | トップページ | IE7 で Shell と IE が分離されました。(その3) »

2008年5月27日 (火)

IE7 で Shell と IE が分離されました。(その2)

今まで (IE6) は、Shell.ApplicationのWindows().Item() で、現在または最後にアクティブな IE が捕捉できましたが、それができなくなりました。:-(

Shell.ApplicationのWindows().Item() で捕捉できるのは、現在または最後にアクティブな Shell だけです。

それを利用していたスクリプト類は、全滅です。:-(

で、その対処法ですが、難しそうですね。駄目っぽい。

「現に」アクティブな IE の場合には、
  Set ie=CreateObject("Shell.Application").Windows().Item()

  Set Shell=CreateObject("Shell.Application")
  For Each ie In Shell.Windows()
    If TypeName(ie.Document)="HTMLDocument" Then If ie.Document.hasFocus() Then Exit For
  Next
に変えます。
ただし、フォーカスを Web ページ部分に置いておく必要があります。
もし、フォーカスが外れてると、見つけ損ないます。

HTA スクリプトは、フォーカスを奪うので、この手は使えません。

「最後にアクティブ」の部分は、打つ手なし、です。

今まで (IE6) は、これを利用して、ブックマークレットっぽいことが出来ましたが、IE7 ではもう無理みたい。
これからは、コンテキストメニュー拡張でやるしかないかなぁ~。

« IE7 で Shell と IE が分離されました。 | トップページ | IE7 で Shell と IE が分離されました。(その3) »