Temporary Internet Files

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Temporary Internet Files

Сообщение kuhtiov » 06.06.2007 (Ср) 5:39

Здравствуйте, проблема такая. При момощи кирпичика (Скачка файлов из Интернета) сделал возможность обновлять свою програмулинку через интернет. Первым шагом она закачивает выйл, в котором содержится список доступных обновлений. После того, как он впервый раз его закачал, файл этот кладется в Temporary Internet Files. Если внести изменнения в файл, то естественно при следующей попытки скачать список доступных обновлений, взят он будит из Temporary Internet Files и будит устаревшим. Как быть? Может сталкивался кто с подобным? :?

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 06.06.2007 (Ср) 7:28

Во-первых,
При момощи кирпичика (Скачка файлов из Интернета) сделал возможность обновлять свою програмулинку через интернет.

WTF is this? Кто такой кирпичик?
А во-вторых, юзай API URLDownloadToFile
Код: Выделить всё
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
Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
    Dim lngRetVal As Long
    lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
    If lngRetVal = 0 Then DownloadFile = True
End Function
Private Sub Form_Load()
    'example by Matthew Gates (Puff0rz@hotmail.com)
    DownloadFile "http://www.allapi.net", "c:\allapi.htm"
End Sub
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.06.2007 (Ср) 7:32

Tarik, как ни удивительно, URLDownloadToFile блокирует приложение.
А качалка из кирпичей, как ни удивительно, нет.
Пора бы знать список разделов форума, на котором ты так давно.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 06.06.2007 (Ср) 8:04

GSerg, уел :)

Чтобы URLDownloadToFile не блокировал, можно создать новый поток.

Посмотрел качалку из кирпичей. ИМХО стоило написать побольше инфы по настройке. Насколько я понял после копания в MSDN, в данном случае, автору нужно отловить событие GetOptions и прописать для BINDF значение BINDF_GETNEWESTVERSION
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 06.06.2007 (Ср) 8:38

Tarik писал(а):GSerg, уел :)

автору нужно отловить событие GetOptions и прописать для BINDF значение BINDF_GETNEWESTVERSION


Я не совсем понял, а чем это делу поможет?

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 06.06.2007 (Ср) 9:07

Файл всегда будет скачиваться с сервера, а не браться из кэша. По крайней мере, должен...
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 06.06.2007 (Ср) 9:41

А мы пойдем другим путем...
Код: Выделить всё
Private Declare Function DeleteUrlCacheEntry Lib "wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
Лучший способ понять что-то самому — объяснить это другому.

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 06.06.2007 (Ср) 10:16

Antonariy писал(а):А мы пойдем другим путем...
Код: Выделить всё
Private Declare Function DeleteUrlCacheEntry Lib "wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long


Извеняюсь, я не понял мысль.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 06.06.2007 (Ср) 10:46

:shock: :?
Удалить из кеша барахло перед загрузкой. Если это не очевидно хотя бы из названия функции... то я уж не знаю. Пойду яду, чтоль, выпью...
Лучший способ понять что-то самому — объяснить это другому.

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 06.06.2007 (Ср) 11:09

Antonariy писал(а)::shock: :?
Удалить из кеша барахло перед загрузкой. Если это не очевидно хотя бы из названия функции... то я уж не знаю. Пойду яду, чтоль, выпью...


Не пей, может еще пригодишься. Я демал об этом, но надеялся, что есть шанс на другой, более красивый вариант. Прийдется довольствоваться этим. Всем спасибо!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 06.06.2007 (Ср) 11:21

Утешил... 8)
Лучший способ понять что-то самому — объяснить это другому.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.06.2007 (Ср) 11:33

Tarik писал(а):Чтобы URLDownloadToFile не блокировал, можно создать новый поток.

Ага, новый поток из VB -- самое то ;-)
(Хотя я, страшно признаться, в одной проге так и делал. Генерировал в байтовом массиве вызывалку URLDownloadToFile, и запускал её отдельным потоком. Падало чаще, чем нет ;-))

Фишка в том, что URLDownloadToFile действует полностью идентично моей качалке. Т.е. если моя берёт файл из кэша, а не с сервера, то и URLDownloadToFile возьмёт оттуда же.
Изображение

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 06.06.2007 (Ср) 17:29

Ага, новый поток из VB -- самое то

Теоретически можно, значит надо упомянуть :)
Вообще говоря, с ф-циями, относящимися к HTTP я особо не разбирался - когда писал свой апдейтер на VB, юзал фтп и класс из какого-то примера от мелкософта. А URLDownloadToFile упомянул из-за того, что автор сказал только про файл со списком обновлений. В принципе, размер такого файла невелик, поэтому, по большому счёту, на блокируемость/неблокируемость можно забить.
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.06.2007 (Ср) 18:40

tyomitch писал(а):Фишка в том, что URLDownloadToFile действует полностью идентично моей качалке. Т.е. если моя берёт файл из кэша, а не с сервера, то и URLDownloadToFile возьмёт оттуда же.

Блокируемость/неблокируемость побоку.
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 94

    TopList