URLダウンロードとキャッシュファイル削除 <TOP>
URLのHTML等をダウンロードしファイルに保存します。また、インターネット一時ファイル(キャッシュ)を削除します。
URLDownloadToFile URLのHTML等をダウンロードしファイルに保存
DeleteUrlCacheEntry インターネット一時ファイルの削除
Yahooのトップページをダウンロード、test2.htmとして保存し読込表示させています。
フォルダが存在しない場合はエラーになります。(エラー処理はしていません)
フォームをリサイズしたところ
PDF文書をダウンロードしテキスト形式で表示させてみたところ。アドビリーダーでは正常に開けます。
'================================================================
'= URLダウンロードとキャッシュファイル削除
'= (URLDownloadToFile.bas)
'================================================================
#include "Windows.bi"
' URLのHTML等をダウンロードしファイルに保存
Declare Function Api_URLDownloadToFile& Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller&, ByVal szURL$, ByVal szFileName$, ByVal dwReserved&, ByVal lpfnCB&)
' インターネット一時ファイルの削除
Declare Function Api_DeleteUrlCacheEntry& Lib "Wininet" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName$)
#define ERROR_SUCCESS 0
'正常終了の戻り値を示す
#define BINDF_GETNEWESTVERSION &H10
'
Var Shared Edit1 As Object
Var Shared Edit2 As Object
Var Shared Edit3 As Object
Var Shared Button1 As Object
Var Shared Button2 As Object
Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 12
Edit2.Attach GetDlgItem("Edit2") : Edit2.SetFontSize 14
Edit3.Attach GetDlgItem("Edit3") : Edit3.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14
Button2.Attach GetDlgItem("Button2") : Button2.SetFontSize 14
Var Shared sSourceUrl As String
Var Shared sLocalFile As String
Declare Sub HTML_DSP edecl ()
'================================================================
'=
'================================================================
Declare Function DownloadFile(sSourceUrl As String, sLocalFile As String) As Integer
Function DownloadFile(sSourceUrl As String, sLocalFile As String) As Integer
DownloadFile = Api_URLDownloadToFile(0, sSourceUrl, sLocalFile, BINDF_GETNEWESTVERSION, 0)
End Function
'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
sSourceUrl = "https://tokovalue.jp/"
sLocalFile = "test2.htm"
Edit2.SetWindowText sSourceUrl
Edit3.SetWindowText sLocalFile
End Sub
'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
sSourceUrl = Edit2.GetWindowText
sLocalFile = Edit3.GetWindowText
Edit1.SetWindowText ""
Edit2.SetWindowText sSourceUrl
Edit3.SetWindowText sLocalFile
If DownloadFile(sSourceUrl, sLocalFile) = ERROR_SUCCESS Then HTML_DSP
End Sub
'================================================================
'=
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
Var txt As String
Var Ret As Long
sSourceUrl = Edit2.GetWindowText
sLocalFile = Edit3.GetWindowText
Edit1.SetWindowText ""
Edit2.SetWindowText sSourceUrl
Edit3.SetWindowText sLocalFile
Ret = Api_DeleteUrlCacheEntry(sSourceUrl)
txt = "保存済ファイルを読み込みます!"
If Ret = 0 Then
A% = MessageBox("", "エラー!" & Chr$(13) & Chr$(13) & txt, 0, 2)
Else
A% = MessageBox("", "キャッシュを削除しました!" & Chr$(13) & Chr$(13) & txt, 0, 2)
End If
If DownloadFile(sSourceUrl, sLocalFile) = ERROR_SUCCESS Then HTML_DSP
End Sub
'================================================================
'=
'================================================================
Sub HTML_DSP()
Var hfile As byte
Var Buff As String
hfile = FreeFile
Open sLocalFile For BinInp As hfile
Buff = Space$(lof(hfile))
FRead hfile, Buff
Buff = JConv$(Buff, 0, 2)
Edit1.SetWindowText Buff
Close hfile
End Sub
'================================================================
'=
'================================================================
Declare Sub MainForm_Resize edecl ()
Sub MainForm_Resize()
If GetWidth < 550 Or GetHeight < 370 Then
SetWindowSize 550, 370
End If
Edit1.SetWindowSize GetWidth - 30, GetHeight - 144
Button1.MoveWindow GetWidth - 424, GetHeight - 66
Button2.MoveWindow GetWidth - 220, GetHeight - 66
End Sub
'================================================================
'=
'================================================================
While 1
WaitEvent
Wend
Stop
End