度々おそれいります。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200506/05060046.txt
で教えて頂いたプログラムを用いて、タグ以外のテキストを保存するのかHTMLソースを丸ごと保存するのか
両方できるようにしたいのですが、HTMLソースをそのまま保存する場合はどこを変更したら良いでしょうか?
お恥ずかしい事に大分時間をかけて試行錯誤してみたのですが、
どうしてもわかりませんでした。(TT)
一つ変更点を教えて頂けたら助かります。
> FS.Write(CallByName(Body, "innerText", CallType.Get))
を
FS.Write(CallByName(Body, "innerHTML", CallType.Get))
または
FS.Write(CallByName(Body, "outerHTML", CallType.Get))
にするとか。
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
LESIAさん、 魔界の仮面弁士さん、回答をお寄せ頂きありがとうございます。
2つの方法を教えていただきましたが、両方とも目的の結果を得ることができました。
違いを検討して、適した方を使わせて頂きたいと思っています。
ありがとうございました。
ツイート | ![]() |