Вот код (но он не работает):
Option Explicit
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal lpszAgent As String, ByVal dwAccessType As Long, ByVal lpszProxy As String, ByVal lpszProxyBypass As String, ByVal dwFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hInternet As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByRef dwContext As Long) As Long
Private Declare Function InternetQueryDataAvailable Lib "wininet.dll" (ByVal hFile As Long, ByRef lpdwNumberOfBytesAvailable As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean
Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByRef lpBuffer As Any, ByVal dwNumberOfBytesToRead As Long, ByRef lpdwNumberOfBytesRead As Long) As Integer
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByRef hInternet As Long) As Boolean
Private Const INTERNET_OPEN_TYPE_PRECONFIG As Long = &H0
Private Const INTERNET_FLAG_EXISTING_CONNECT As Long = &H20000000
Private Sub cmdGetTags_Click()
On Error Resume Next
Dim hInternet As Long, hFile As Long, hFileSize As Long
If Trim(txtFilePath) <> vbNullString Then
' Соединяемся с сервером
hInternet = InternetOpen("VBLand.Net ICQ Bot", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, &H0)
Call LogAction("Соединились c сервером - " & Hex$(hInternet))
' Запрашиваем нужный нам файл
hFile = InternetOpenUrl(hInternet, txtFilePath.Text, vbNullString, &H0, INTERNET_FLAG_EXISTING_CONNECT, &H0)
Call LogAction("Нашли файл - " & Hex$(hFile))
If hFile <> &H0 Then
' Если файл найден, то начинаем свои действия
If InternetQueryDataAvailable(hFile, hFileSize, &H0, &H0) Then
Call LogAction("Размер файла: " & hFileSize)
End If
Else
' Если файл не найден (или ошибка), то говорим об ошибке
Call LogAction("Невозможно скачать файл - неверный хендл файла")
End If
Call InternetCloseHandle(hFile)
Call InternetCloseHandle(hInternet)
End If
End Sub
Private Sub LogAction(ByVal szLogString As String)
On Error Resume Next
With txtTagsInfo
.Text = .Text & vbCrLf & szLogString
.SelStart = Len(.Text)
End With
End Sub
Почему неверно выдается размер файла? Например:
http://localhost/Jakatta_feat._DJ_Basco_-_One_fine_day.mp3 - 7 101 092 байта, а выдается всего 794
Мне нужно узнать размер файла, затем прочитать содержимое этого файла
начиная с hFileSize - 128. Если кто догадался зачем - поздравляю :)
И еще - как выровнять первый столбец у ListView программно? Надо
постать ему какую-то комманду - какую?
Ответить
|