![]() |
|
Модераторы: Akina |
![]()
|
|
| Эд |
|
|||
|
Unregistered |
Мне понадобилось сделать себе инструмент-"гляделку" в Нете, и я использовал способ скачивания, указанный вот здесь http://forum.vingrad.ru/index.php?showtopic=30379 Спасибо большое -Mikle- !
Дополнительный вопрос: какова функция "обновления страницы"? А то после первой скачки, последующие разы берутся из кэша, невзирая на изменившееся состояние сайта. Как принудительно обновить кэш, используя VB? |
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
-------------------- i_i (';') (V) ![]() |
|||
|
||||
| Voldemar2004 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Короче если по-нормальному, то: проверяешь, отличается ли предыдущая страница от текущей, Если Да, То Стираешь Кэш, пишешь в него то, что тебе надо, Иначе Оставляешь Кэш в покое. В качестве сравнения можно взять 2 файла кэшей - предыдущую страничку и текущую, причем обе они находятся в одной папке - геммора меньше.
Короче все крутится возле операторов циклов: For Next, Do ...... Loop While и нижеследующего кода, который и сравнивает два файла по нескольким принципам: атрибутам, датам создания, датам изменения, по бинарным данным: Модуль:
Форма, кнопка, 2 textbox'a и несколько Label'ов:
Успехов!
-------------------- i_i (';') (V) ![]() |
||||||||
|
|||||||||
| Эд |
|
||||
|
Unregistered |
Твоя мысль не проходит, потому что, чтобы проверить, изменилось ли содержание страницы, надо сперва ее скачать. А она в процессе скачки как раз и берется из кэша, поэтому результатом сравнения окажется заранее равенство. Можно, правда, перед загрузкой каждый раз физически стирать все файлы кэша, но это как-то по-ламерски было бы, и тогда как определить где именно расположен кэш на пользовательской машине? Листинг хотя и громоздкий, но сам по себе полезный, - на тему "как сравнить атрибуты файлов в VB". Жаль что без единого комментария и не по теме вопроса. Потому что вопрос-то - как запретить использование кэша во время скачки с интернета, а не алгоритм сравнения. Так что проблема осталась не проясненной!
Кстати: как принять файл - это хотя бы в принципе ясно, а вот как отправить заполненную форму? - вот за это время возник такой вопрос. В браузере два метода есть: GET и POST. А как через VB их сделать? |
||||
|
|||||
| bom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 329 Регистрация: 22.2.2004 Где: Казахстан, Алматы Репутация: 4 Всего: 6 |
Привет! Как раз недавно озадачивался тем же вопросом. Не мудрствуя особо, остановился на более простом решении.
Как оказалось, файлы берутся из кеша, когда они там есть и когда в настройках IE выставлена опция "Проверять обновления сохраненных страниц: никогда". Перед скачкой запоминаем сначала значение ключа "HKEY_CURRENT_USER, "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings", "SyncMode5"(dword), затем меняем его на "3", после успешной или неуспешной скачки - возвращаем прежнее значение ключу. Это сообщение отредактировал(а) bom - 12.7.2005, 19:31 |
|||
|
||||
| bom |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 329 Регистрация: 22.2.2004 Где: Казахстан, Алматы Репутация: 4 Всего: 6 |
На счет Post сам не знаю, а про Get в отрывке статьи Демина Антона: Каждый элемент формы имеет свои свойства, двумя из которых являются имя и значение. Например у текстового поля может быть имя "e_mail_text", а значение "[email protected]". У CheckBox'а имя может быть "Check1", а значение "1" (в отличии от VB в HTML "галочка" может принимать значение не только "1", но и любоё другое, например "yes"). Также у всех объектов есть свой тип. Например, кнопка - button, текстовое поле - text, кнопка для отправки - submit, а кнопка для очистки полей - reset. Также существуют объекты типа hidden, которые не видны на странице, но также имеют имя и значение. Так вот после того, как пользователь нажмёт на кнопку отправки, браузер генерирует адрес страницы, на которую потом переходит пользователь. Вначале строки идёт адрес до CGI скрипта с вопросительным знаком на конце, например: http://www.someserver.ru/cgi-bin/cgi_script.cgi? Затем идёт имя первого элемента формы, после чего ставиться "=" и пишется его значение, потом "&" и имя второго элемента и т.д. В случае с отправкой сообщения в службу поддержки строка будет иметь вид: http://www.someserver.ru/cgi-bin/cgi_scrip...=Some%20Message Здесь "Some User" - имя автора, "[email protected]" - обратный e-mail, а "Some Message" - сообщение. Из-за того, что в адресе не могут быть пробелы и другие специфические символы (к которым относятся и буквы русского алфавита), их заменяют на символ "%", после которого идёт номер ASCII символа в 16ти разрядном виде. Для этого можно разобрать пример на самой простой программе, например для поиска на Яndex'е. Для этого создаёте новый проект и поместите на него текстовое поле с кнопкой. Теперь напишем код для кнопки:
Про Post смотри здесь: http://bbs.vbstreets.ru/viewtopic.php?t=7726 Это сообщение отредактировал(а) bom - 13.7.2005, 09:31 |
||||
|
|||||
| Plamenk |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 258 Регистрация: 18.2.2003 Репутация: нет Всего: 3 |
Добавляй в конце запроса "?". Например "mail.ru?"
|
|||
|
||||
| Эд |
|
|||
|
Unregistered |
bom, спасибо за разъяснения, и особенно за ссылочку на bbs.vbstreets. Толково описана.
Хотел попробовать загрузку как там сказано, но там требуется WinSock Control, а где взять этот контрол? Я так и не нашел. Так что ничего пока не получилось |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Заходишь в проект, нажимаешь Ctrl-T, в списке выбираешь Microsoft Winsock Control и готово...
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| bom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 329 Регистрация: 22.2.2004 Где: Казахстан, Алматы Репутация: 4 Всего: 6 |
Посмотри в своей %System% директории MSWINSCK.OCX
Поставляется с VB, если почему то нет, то поиск на Яндексе поможет. |
|||
|
||||
| Эд |
|
|||
|
Unregistered |
Всем спасибо, но весь список просмотрел - нету там его у меня почему-то (VB6.0) и файла такого на винте тоже, вообще нет
Так что, когда раздобуду - напишу, чё получилось. |
|||
|
||||
| bom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 329 Регистрация: 22.2.2004 Где: Казахстан, Алматы Репутация: 4 Всего: 6 |
Способ без обращения к реестру. Чтоб заставить функцию URLDownloadToFile качать свежую версию файла, не зависимо от наличия того в кеше IE надо присвоить параметру dwReserved значение 1 при вызове: "dwReserved=1&".
Всего хорошего. |
|||
|
||||
| Гость_KEKC |
|
|||
|
Unregistered |
Что бы страница качалась заново, надо передавать странице параметры.
Т. е. не опять скачивать файл "http://abc.lv/somepage.html", а, якобы, другой "http://abc.lv/somepage.html?abcdefg123". Только, параметры должны быть каждый раз разные. Когда, я делал чат на ВБ, я создавал рандомную переменную при старте проги int(rnd*1000000), а потом, каждый раз, при скачивании, увеличивал её на 1. Ещё я буквы разные добавлял, но можно и без них. |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |