ブラウザで表示されているデータをテキストファイルにしたいのですが、
どうやって読み込んだら良いでしょうか?
プロセスIDの取得などまでは出来たのですが、その先がわかりません。
SendKeys.Send("{F10}")
SendKeys.Send("E") ...
などでと思ったのですが、全てを選択をした時の反転状態の解除の仕方がわからず、
(そのままにしておくのは都合が悪いので)
他の方法を探し始めました。
テキストを丸ごと変数に代入したり、クリップボードに入れることができれば、あとはなんとかなりそうなのですが、
検索でもいろいろ調べては見たのですが、答えが見つけられませんでしたので教えて頂きたいです。お願いします。
> ブラウザで表示されているデータをテキストファイルにしたいのですが、
こんな感じかな……。
起動中のIEを列挙して、その中身を拾い出してみました。
手抜き実装なので、フレームを使ったページには対応させていません。
(個々のフレーム内の情報まで拾うと、サンプルの見通しが悪くなりますし)
'--------------------------------------
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 FilePath As String = Path.GetTempFileName()
Dim FS As New StreamWriter(FilePath)
'ファイルの先頭に、URLなどの情報を記録してみる
FS.Write("URL:=")
FS.WriteLine(CallByName(Exp, "LocationURL", CallType.Get))
FS.WriteLine("出力日時:=" & Now.ToString("yyyy/MM/dd HH:mm:ss.fffffff"))
'MSHTML経由でドキュメントの内容を取得
Dim Body As Object
Try
Body = CallByName(Doc, "body", CallType.Get)
FS.Write(CallByName(Body, "innerText", CallType.Get))
Finally
If Not IsNothing(Body) Then
Marshal.ReleaseComObject(Body)
End If
Body = Nothing
End Try
FS.Close()
'一時ファイルを移動
Dim FileName As String = Path.GetFileNameWithoutExtension(FilePath)
File.Move(FilePath, Path.Combine(WorkFolder, FileName & ".txt"))
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
魔界の仮面弁士さん。
こんなにまで至れり尽くせりなすばらしい回答をありがとうございます!!!!!
このままこれはこれで使いたくなってしまいそうなプログラムです!
感謝感激、すごくありがたく参考、使用させて頂きたいと思います。
ありがとうございました!
解決をチェックするのをわすれてしまいました。
ツイート | ![]() |