起動しているIEのHTMLソースをファイル保存したい

解決


しげちお  2005-06-09 12:34:57  No: 122374

度々おそれいります。

http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200506/05060046.txt

で教えて頂いたプログラムを用いて、タグ以外のテキストを保存するのかHTMLソースを丸ごと保存するのか
両方できるようにしたいのですが、HTMLソースをそのまま保存する場合はどこを変更したら良いでしょうか?

お恥ずかしい事に大分時間をかけて試行錯誤してみたのですが、
どうしてもわかりませんでした。(TT)
一つ変更点を教えて頂けたら助かります。


LESIA  2005-06-09 13:20:02  No: 122375

> FS.Write(CallByName(Body, "innerText", CallType.Get))

FS.Write(CallByName(Body, "innerHTML", CallType.Get))
または
FS.Write(CallByName(Body, "outerHTML", CallType.Get))
にするとか。


魔界の仮面弁士  2005-06-09 18:24:34  No: 122376

IPersistFile インターフェイスを利用するのが簡単かと。

'--------
Option Strict On
Imports System.IO
Imports System.Runtime.InteropServices
Module Module1

  Sub Main()
    '結果を出力するフォルダ
    Dim WorkFolder As String = "C:\TextFiles\"
    Directory.CreateDirectory(WorkFolder)

    '現在起動中の InternetExplorer を列挙する
    Dim Shell As Object = CreateObject("Shell.Application")
    Dim Windows As Object = CallByName(Shell, "Windows", CallType.Method)
    For I As Integer = 0 To CInt(CallByName(Windows, "Count", CallType.Get)) - 1
      Dim Exp As Object = CallByName(Windows, "Item", CallType.Get, I)
      Dim Doc As Object = CallByName(Exp, "Document", CallType.Get)
      'HTMLを表示している場合のみ処理する
      If Doc.GetType().Name Like "HTMLDocument*" Then
        Dim FileName As String = Now.ToString("yyyy-MM-dd_HH;mm;ss_fffffff") & ".html"
        Dim FilePath As String = Path.Combine(WorkFolder, FileName)

        'IPersistFileインターフェイスにて保存
        Dim PF As UCOMIPersistFile = DirectCast(Doc, UCOMIPersistFile)
        PF.Save(FilePath, False)
      End If
      Marshal.ReleaseComObject(Doc)
      Marshal.ReleaseComObject(Exp)
    Next
    Marshal.ReleaseComObject(Windows)

    'フォルダを開く
    CallByName(Shell, "Open", CallType.Method, WorkFolder)
    Marshal.ReleaseComObject(Shell)
  End Sub

End Module


しげちお  2005-06-10 08:28:40  No: 122377

LESIAさん、 魔界の仮面弁士さん、回答をお寄せ頂きありがとうございます。

2つの方法を教えていただきましたが、両方とも目的の結果を得ることができました。
違いを検討して、適した方を使わせて頂きたいと思っています。
ありがとうございました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加