現在、私は、VB6でブラウザを作成しています。
バージョンはラーニング・エディションです。
ブラウザは、だいたい出来上がったのですが、HTMLのファイルの
ダウンロードのプルグラムがどのように作って良い物か困っています。
誰か、知っている方は、教えてください。
できれば、プログラム例をお願いします。
ここの掲示版の一番上にある「掲示板の全トピックから単語:」 で
html をキーしてサーチする。
または
下記の VBレスキュー(花ちゃん) さんのホームページの中の
「カテゴリ別サンプル一覧」「その他のコントロール関係」
指定のURLのHTMLファイルをダウンロードする インターネット トランスファ (Inet)コントロール の使用例
haruさんお忙しいところすみません。
今日、半日時間を使ってしまっていろいろホームページを探しましたが
思うように進んでいません。WebBrowser1.Documentの所がいいのでは、
ないかとキーポイントになっていますが、いまだにわかりません。
ちなみに、インターネット トランスファ (Inet)コントロールを
調べましたが、ラーニング・エディションでは、このコーポネンツは、
ありませんでした。
いちばんひっかかるのが、WebBrowser1.Documentの所です。ただし、
このホームページがありましたので、猿真似で動かそうとしましたが、
ユーザー定義の所が理解不足でだめでした。たぶんここを
使いこなせば、できるかも(?)しませんが、持っているマニュアルの
辞典には、WebBrowser1の所が記載されていません。
途中でたいぎくなって酒を飲んでしまいました。
WebBrowser1.Documentの所の.Documentの指定の仕方、引数などの
情報をよろしくお願いします。又別の方法があれば教えてください。
トゥルーより、
> ブラウザは、だいたい出来上がったのですが
HTML表示機能を自作した、という意味でしょうか。
それとも、WebBrowserコントロールを用いているのでしょうか?
> プルグラム
「プログラム」ですね。
> 途中でたいぎくなって酒を飲んでしまいました。
たいぎくなる、という言葉の意味がわかりませんでした…。(汗
(googleったら、中国・四国・九州あたりの言葉のようで)
> HTMLのファイルのダウンロード
WebBrowser に表示させるだけなら、Navigate メソッドが使えます。
ファイルとして取得する必要があるなら、こんな感じで如何でしょう。
Private Sub Command1_Click()
Dim URL As String
Dim FilePath As String
URL = "http://www.urabe-taikando.co.jp/manabu/vitamin/vb6.html"
FilePath = "C:\Sample.html"
Dim o As Object
Set o = WebObject()
If o Is Nothing Then
MsgBox "ダウンロードできません"
Exit Sub
End If
o.Open "GET", URL, False
o.send
If o.Status >= 200 And o.Status < 300 Then
Dim B() As Byte
B = o.responseBody
Dim FNo As Integer
FNo = FreeFile(0)
Open FilePath For Output As #FNo
Close #FNo
Open FilePath For Binary As #FNo
Put #FNo, , B
Close #FNo
MsgBox "ダウンロード成功"
Else
MsgBox "ダウンロード失敗(" & CStr(o.Status) & ")" & o.statusText
End If
End Sub
Private Function WebObject() As Object
Dim ProgId As Variant
On Error Resume Next
For Each ProgId In Array( _
"MSXML2.XMLHTTP.6.0", _
"MSXML2.XMLHTTP.5.0", _
"MSXML2.XMLHTTP.4.0", _
"MSXML2.XMLHTTP.3.0", _
"MSXML2.XMLHTTP.2.6", _
"MSXML2.XMLHTTP", _
"Microsoft.XMLHTTP")
Set WebObject = CreateObject(ProgId)
If Err.Number = 0 Then
Exit Function
Else
Err.Clear
End If
Next
Set WebObject = Nothing
End Function
魔界の仮面弁士さん、ありがどうございました。
上記の方法でHtmlは、保存することがでいました。
ただ、困ったのは、vb6.htmlの保存ができますが、
画像などが、保存できました。
今回、プログラムの目的は、Htmlだけではなく、下記の内容を
満たしているプルグラムでした。タイトルと少し内容がことなりますが
よろしくお願いします。
(1)vb6.htmlは、保存できましたが、Htmlについている画像などの
保存ができなくて困っています。vb6.Htmlの画像などを
ホームページといっしょに、保存できることです。
(2)http://www.fmworld.net/ などのHtmlのファイル名が
記述されて無いアドレスの場合、(1)と同じように
Htmlと画像などを保存のしかたです。
もし、よろしければ教えてください。
>画像などが、保存できました。
よかったですね・・・
せっかくHTMLを保存出来るサンプルコードまで書いて頂いたのですから
もう少し自分でこれを発展させて見たら如何でしょうか。
1.取得したhtmlファイルの内容から保存したい画像のリンクを取る。
( .gif .jpg など)
2. URL と FilePath を画像用に書き換える。
1.に関してもここの掲示板で WebBrowser をキーにして探せば
サンプルがあると思います。
大変、わがままですみませんが、何をすべきかと言う精神論ではなくて、
こうるれば、いいとゆうことですのでよろしくお願いします。
元々、東京にいたころ、MS−DOSの頃のプログラマーで
MS−DOSのことは、勉強しましたが、
WindowsのVB6は、まだ初心者ですので、よろしくお願いします。
すみません。自分で深く反省してます。教えてください。
要するにサンプルだけ欲しくて自分では試行錯誤しないと言う事?
少しは考えなければプログラムは出来ませんよ!
さようなら.......
> vb6.Htmlの画像などをホームページといっしょに、保存できることです。
そういうことは、最初に書きましょうよ。(^_^;)
情報を小出しにしても、回りくどいだけですし。
Private Sub Command1_Click()
Dim URL As String
Dim FilePath As String
URL = "http://www.nmnweb.net/suppli/vb5.html"
FilePath = "C:\Sample.mht"
Dim o As Object
Set o = CreateObject("CDO.Message")
o.CreateMHTMLBody URL
o.GetStream().SaveToFile FilePath
End Sub
> Htmlのファイル名が記述されて無いアドレスの場合、
この場合、URL アドレスの表記云々は関係無いのでは…。
> MS−DOSのことは、勉強しましたが、
> WindowsのVB6は、まだ初心者ですので
もしかして、Visual Basic for MS-DOS の経験者でしょうか?
返事が遅れてすみません。魔界の仮面弁士さんありがとうございました。
今日、一日プロシジャー(モジュール)に格闘していて
返事遅れてすみません。
最初は、mhtファイルの意味がわからず、マイクロソフトに電話し、
下記のことを聞きました。
1)mhtとは、インターネット・エクスプロラーのファイルの
名前を付けて保存で、ファイルの種類で、mhtファイル形式の保存の
意味がわかりました。本当は、ファイルの種類のWebページ完全のイメージ
でした。ちょっと気に入っているページの動画と音楽のホームページを
保存したかったので、マイクロソフトに聞くとWebページ完全でも、
動画は保存できないことがわかりました。
上記の内容で下記のプロシジャー(サブルーチン)を作成しました。
Private Sub Save_HomePage_Click()
'表示しているホームページの1画面をmhtファイル形式に
'保存する。
'mhtの形式のファイル名を入力する。
CommonDialog1.Filter = "mht(*.mht)"
CommonDialog1.ShowSave
'保存か?又はキャンセルの判断
If Trim(CommonDialog1.FileName) <> "" Then
'ファイル名入力
'変数のイニシャライズ(初期設定)
Dim URL As String
Dim FilePath As String
Dim stringURL As String
'アドレスをセットする。
URL = WebBrowser1.LocationURL
'ファイル名の加工(拡張子を大文字にしてチェックする)
'大文字にするのは、おまじない
If UCase(Right(CommonDialog1.FileName, 4)) <> ".MHT" Then
FilePath = CommonDialog1.FileName & ".mht"
Else
FilePath = CommonDialog1.FileName
End If
'入力したファイルがあるか、確認
'注意事項:同じファイル名で、同じURLの時、保存する時にまだここの改良必要?
If Dir(FilePath) <> "" Then
If MsgBox("保存済みのファイルがあります。上書きしますか?", vbOKCancel, "確認メッセージ") = vbOK Then
Kill FilePath
MsgBox "kill Ok"
End If
End If
'mftファイルを保存
'この4行は、ブラックボックス?
'マイクロソフトでは、OutLookの言葉(?)を使っているらしい?
Dim o As Object
Set o = CreateObject("CDO.Message")
o.CreateMHTMLBody URL
o.GetStream().SaveToFile FilePath
MsgBox "ホームページは保存しました。", vbOKOnly, "確認メッセージ"
Else
'ファイル名がない(キャンセル)
MsgBox "ホームページの保存はキャンセルしました。", vbOKOnly, "確認メッセージ"
End If
End Sub
結局、上記の内容(mth)のファイルの保存で、納得しました。
ありがとうございました。本当は、Web完全保存のイメージですけれども
私自身は、vb6の初心者ですので限界があり、これで納得しました。
ps.Htmlのファイル名が記述されて無いアドレスの場合
これは、今回のmftファイルで保存できました。
ps.Visual Basic for MS-DOS の経験者でしょうか?
これは、Disk Basic ,N88-Basicの頃です。
ps.今回おれいになったので下記の情報をおおしえします。
1)IBMのホームページ・ビルダー10で、アンケートホームを作成し、
自分のパソコンでテストランすると、新規のOutLookが起動して
アンケートの内容がない状態がありましたでしょうか?
IBM側は、Mailtoで送っているので、マイクロソフトに聞いてください。
マイクロソフト側は、IBMのソフトなので,IBMに聞いてください。
OEM(客先ブランド)の富士通は、IBM、マイクロソフトに聞いてください。
結局、たらいまわしをくらって、マイクロソフトに文句をいったら、
まじめに対応してくれて、結局、レジストリーのMailが間違っていたため
レジストリーのMailの中身を消してくださいと言われ、見事動きました。
マイクロソフトは、今回は私でもの間違いです。と釈明してくれて
さすが、天下のマイクロソフトだと思いました。
ただし、私のパソコンで、OSに関係なくパソコンの環境でそうなるそうです。
レジストリーは、自己責任なので、Mailtoが遅れないときは、
マイクロソフトに相談してください。
以上
ツイート | ![]() |