HTMLファイルをダウンロードする
                                                         玄関へお回り下さい。
指定のURLのHTMLファイルをダウンロードする                 (132)
     インターネットトランスファー (Inet)コントロール の使用例
まず、 プロジェクト→コンポーネント→で Microsoft Internet Transfer Control 6.0 に
チェックを入れておいて下さい。
そして、表示された(Inet)コントロールをフォームに貼り付けて下さい。

Option Explicit   'SampleNo=132 WindowsXP VB6.0(SP5) 2002.05.22

Private Sub Command1_Click()
  Dim strURL   As String  ' 取得URL
  Dim strFileName As String  ' ファイル名
  Dim intFileNo  As Integer
  Dim bytHtml()  As Byte
  strURL = Text1.Text     'DL  ファイル名
  strFileName = Text2.Text  'SAVE ファイル名
  intFileNo = FreeFile    'ファイルNoを取得
  Me.MousePointer = vbHourglass
  DoEvents
  'ファイルをバイナリモードで読み込み
  bytHtml() = Inet1.OpenURL(strURL, icByteArray)
  '保存処理
  Open strFileName For Binary Access Write As #intFileNo
    'これでもよさそうだが一部文字化けをおこした
    'Put #intFileNo, , Inet1.OpenURL(strURL, icByteArray)
    Put #intFileNo, , bytHtml()
  Close #intFileNo
  Me.MousePointer = vbDefault
  MsgBox strURL & "を" & strFileName & "に保存しました。"
End Sub

 
別途、フォームに Command1 Text1 Text2 を貼り付けて下さい。
Text1.Text = "http://www.msn.co.jp/home.htm" のようにダウンロードしたいファイル名
をフルパスで指定して下さい。指定が間違っているとサイズ0のファイルが作成されます。

Text1.Text
= "C:\test.htm" 保存先をフルパスで指定して下さい。

ダウンロードしたいファイル名に画像ファイルを指定すれば画像もDLできます。

  
上記同様の動作を URLDownloadToFile APIを使って実現    (169)
  Option Explicit   'SampleNo=169 WindowsXP VB6.0(SP5) 2002.07.19

Private Declare Function URLDownloadToFile Lib "urlmon" _
  Alias "URLDownloadToFileA" (ByVal pCaller As Long, _
  ByVal szURL As String, ByVal szFileName As String, _
  ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Private Sub Command1_Click()
  Dim SaveFileName As String
  Dim DownloadFile As String
  Dim Ret     As Long

  SaveFileName = "C:\Test.htm"
  DownloadFile = "http://www.msn.co.jp/home.htm"

  Ret = URLDownloadToFile(0, DownloadFile, SaveFileName, 0, 0)
  DoEvents

  If Ret = 0 Then
    MsgBox "ダウンロードできました。"
  Else
    MsgBox "エラーが発生しました。"
  End If
End Sub

動作は同じですが、こちらは簡単で高速でダウンロードできます。

尚、両方とも、接続されていない場合等でキャッシュから読み込む場合があります。



2002/07/20