- ベストアンサー
現在、開いているIEの子Windowの操作・情報取得はどうやってできるでしょうか。
あるWebページで親ページのリンクから派生した子Windowのソースの取得、子Window内のリンクのクリックなどを行いたいです。子ページではデータが自動更新され、その変化をプログラムで記録したいと考えています。 親ページからきちんとログインした状態でないと、いきなり子ページのURLを指定してもエラーになるようなページです。 そのため、手動で子Windowを立ち上げて、後はプログラムでいろいろと自動処理をしようと思うのですが、そのためには、現在開いている子Windowの識別情報のようなものを取得する必要があります。このためにはどのクラス(ActiveX?,.NET?)のなんという関数()を使えばよろしいのでしょうか。
- みんなの回答 (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
その他の回答 (1)
- naganaga_001
- ベストアンサー率71% (172/242)
お世話になります。 JavaScript で子 window を識別し、 操作するしかないと思います。 操作出来る事とできない事があります。 ご自身がやりたい事が可能かどうか、調べてみてください。
- 参考URL:
- http://tinyurl.com/scr6n
お礼
情報ありがとうございました。
お礼
ありがとうございます。WSHというものを知らないため、すぐには理解できませんが、こういうものがあるということを知れただけでも勉強になりました。