• ベストアンサー

現在、開いているIEの子Windowの操作・情報取得はどうやってできるでしょうか。

あるWebページで親ページのリンクから派生した子Windowのソースの取得、子Window内のリンクのクリックなどを行いたいです。子ページではデータが自動更新され、その変化をプログラムで記録したいと考えています。 親ページからきちんとログインした状態でないと、いきなり子ページのURLを指定してもエラーになるようなページです。 そのため、手動で子Windowを立ち上げて、後はプログラムでいろいろと自動処理をしようと思うのですが、そのためには、現在開いている子Windowの識別情報のようなものを取得する必要があります。このためにはどのクラス(ActiveX?,.NET?)のなんという関数()を使えばよろしいのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • qtea
  • ベストアンサー率77% (38/49)
回答No.2

私が思いついたのは、子WindowのタイトルかURLで検索する方法。 例えば、Wshだと… 子Windowのソースを保存するWshです。 --- ''子Windowのタイトル Ko_Title="" ''子WindowのURL Ko_Url="" ''保存先ディレクトリ SaveDir = "C:\" '子Windowを探す. Set IEAppKo = Nothing For Each IEApp In CreateObject("Shell.Application").Windows() If InStr(1, IEApp.fullname, "iexplore.exe", vbTextCompare) > 0 Then ''If IEApp.LocationUrl = Ko_Title Then 'URLで検索する場合はこちら If IEApp.LocationName = Ko_Title Then Set IEAppKo=IEApp Exit For End If End If Next If IEAppKo Is Nothing Then MsgBox("子Windowを開いていません。") WScript.Quit End If ''子WindowのBody部分のソースを保存 nowdt = Now() TimeStamp = CStr( _ Year(nowdt) & _ Right("00" & Month(nowdt),2) & _ Right("00" & Day(nowdt),2) & _ Right("00" & Hour(nowdt),2) & _ Right("00" & Minute(nowdt),2) & _ Right("00" & Second(nowdt),2)) Set objFileSys = CreateObject("Scripting.FileSystemObject") SaveFileName = objFileSys.BuildPath(SaveDir,TimeStamp & ".html") Set objOutFile = objFileSys.CreateTextFile(SaveFileName) objOutFile.Write(IEAppKo.Document.Body.innerHTML) objOutFile.Close() MsgBox("終了") -- 参考URL http://homepage3.nifty.com/aya_js/wsh/wsh23.htm http://www.happy2-island.com/vbs/cafe02/capter00701.shtml http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reflist_vb.asp

phy0
質問者

お礼

ありがとうございます。WSHというものを知らないため、すぐには理解できませんが、こういうものがあるということを知れただけでも勉強になりました。

その他の回答 (1)

回答No.1

お世話になります。 JavaScript で子 window を識別し、 操作するしかないと思います。 操作出来る事とできない事があります。 ご自身がやりたい事が可能かどうか、調べてみてください。

参考URL:
http://tinyurl.com/scr6n
phy0
質問者

お礼

情報ありがとうございました。

関連するQ&A

専門家に質問してみよう