|
Загрузить файл через IE, дождаться завершения и отловить если что ошибки
|
|||
---|---|---|---|
#18+
Ну собственно, задачка: 1) Загрузить файл из указанного адреса в указанное место (напрашивается %temp%). 2) Если ошибка, сообщить об этом юзеру 3) Если OK, запустить на исполнение Чего хочу и не хочу 1) Обязательно стандартное окно загрузки в стиле тек. OS, т.е. IE -никаких самопалов. 2) Никаких OCX, Internet Controls т.е. без VB-наворотов В каких ситуациях 1) Загрузка и установка новой версии программы 2) Загрузка и запуск .NET инсталлера при необходимости (вариант с . NET 3.5 несмотря на компактный "интернет-инсталлер" слишком громоздский по объему закачки/установки и для меня избыточный, а скажем .NET 2.0 SP1-2 -только полные версии и включать их в дистрибутив очень громоздко, а закачать при необх. целиком в самый раз). Состряпал пока примитивный код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Ну, плюс что никаких OCX, ибо объект берется "из системы". On Error естественно отлавливает только невозможность создать объект InternetExplorer, что малореально. отсутствие Visible нужно чтоб не показывать окно браузера. Стандартных ошибок оно не отлавливает 1) нет коннекта к интернету 2) файл недоступен (а провайдер в этом случае подсунет свою страничку) ну и т.п. причем visible=false в случае ошибки еще и останется в процессах как IExplorer. Ну, допустим, в случае "Загрузка новой версии" еще куда ни шло, т.к. коннект с интернетом до этого проверяется более грамотным кодом и предложения загрузить не поступит, если короткий инф-файл не считался из интернета... В общем по большому счету идея правильная, реализация никакая. Какие рекомендации? Командная строка типа shellandcontinue(rundll32 bla-bla-bla ...) кстати вполне бы устроила... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2010, 04:46 |
|
Загрузить файл через IE, дождаться завершения и отловить если что ошибки
|
|||
---|---|---|---|
#18+
http://www.vbaexpress.com/forum/showthread.php?t=29333 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2011, 22:57 |
|
Загрузить файл через IE, дождаться завершения и отловить если что ошибки
|
|||
---|---|---|---|
#18+
microdin, вы меня конечно очень обрадовали (хоть один ответ ...через 2,5 месяца!) Но как насчет? Дмитрий771) Обязательно стандартное окно загрузки в стиле тек. OS, т.е. IE -никаких самопалов. Если б вы сделали хоть мало-мальский поиск по моим сообщениям, вы бы без труда поняли, что URLDownloadToFileA мне известна (причем давно), а еще мне известны куча других(гораздо более корректных!) методов загружать/читать файлы. Только вот "Шариков" в данной теме интересуется не Как загрузить/прочитать файл из инета (хоть как-нибудь)? А Как сделать это оригинально? Причем именно так как хочет тов.Шариков: "через IE, дождаться завершения и отловить если что ошибки" Для того чтоб понять что именно нужно(визуально иметь) , достаточно просто выполнить код, мной же приведенный выше. Как вы понимаете, этот код делает только "через IE" но не делает "дождаться завершения и отловить если что ошибки". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2011, 03:27 |
|
Загрузить файл через IE, дождаться завершения и отловить если что ошибки
|
|||
---|---|---|---|
#18+
Дмитрий77, тот-же IE зачастую недокачивает файл, т.е. загружает, и в какой-то момент рапортует что все скачал, хотя на самом деле скачано может быть какая-то часть файла. Из-за этих приколов я стараюсь не использовать браузеры для закачек. А всегда ставлю и использую Download Master, не сочти за рекламу. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2011, 10:45 |
|
Загрузить файл через IE, дождаться завершения и отловить если что ошибки
|
|||
---|---|---|---|
#18+
Игорь ГорбоносДмитрий77, тот-же IE зачастую недокачивает файл, т.е. загружает, и в какой-то момент рапортует что все скачал, хотя на самом деле скачано может быть какая-то часть файла. Сии глюки я не отрицаю, но они скорее связаны с глюками всяких там серверов, с которых качаем. IE действительно был не удобен в конце 90-х (лично я пользовался getwrite), при некачественном телефонном интернете. Но в настоящий момент серьезных проблем с закачкой даже 2GB образов дисков с того же Microsoft через стандартный интерфейс IE не возникает. Более того все "иные методы" мной тут недавно пережеванные основаны на том же IE, пусть без стандартного окна закачки о котором собственно и речь в данной теме. И даже примитивный код (без обработки ошибок) мной приведенный я уже использую в 2-х местах программы ибо это "красиво", а вероятность глюков крайне низка (у меня там еще неявная перепроверка через предварительный "скрытый download короткого файла с того же сервера" одним из "иных скрытых методов") и к критическим ошибкам точно не приведет (если например файла/коннекта к файлу нет и откроеся IE с visible=false). А по поводу всяких там сторонних прог для закачки, браузеров типа firefox/mozila и т.п. скажу так: Коль скоро вы выбрали VB6, вы просто по определению обязаны любить и уважать продукцию фирмы Microsoft, OS Windows с "родными компонентами", IE и все что с этим связано. Иной подход может означать исключительно "плевать в колодец из которого пьешь", кричать скажем "IE==Г" может только новичок с завышенным самомнением и повторяющий общие слова людей некомпетентных. К Вам Игорь, эти комментарии понятно не относятся. Это так, к слову... Просто не могу спокойно смотреть на людей, которые используют BAT вместо Outlook Express и с пеной у рта говорят про дыры IE и преимущества Mozil-ы. Потом эти люди иногда интересуются: а че это я help не могу прочесть к куче прог? Ой, блин, опять ниче не работает, нады винды переустанавливать ну и т.п. В конце концов, есть платформенно-независимый C/C++ (естественно про WIN-API и про Visual Studio забудьте), специально для "правильного" подхода. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2011, 14:31 |
|
Загрузить файл через IE, дождаться завершения и отловить если что ошибки
|
|||
---|---|---|---|
#18+
не стандартный диалог закачки файлов у IE, наверное вы имеете ввиду, а добычный диалог выбора сохранения в файл из ОС. так используйте его сами, а потом инициируйте закачку с указанного адреса любым своим способом. PS IE до сих пор глючно качает файлы, стараюсь им не пользоваться в этих целях. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2011, 14:59 |
|
Загрузить файл через IE, дождаться завершения и отловить если что ошибки
|
|||
---|---|---|---|
#18+
Konst_Oneне стандартный диалог закачки файлов у IE, наверное вы имеете ввиду, а добычный диалог выбора сохранения в файл из ОС. Нет, в виду имелся именно "диалог скачки" (когда уже качает), а не общий диалог Open/Save (который кстати желательно иметь возможность пропустить, задав имя файла из программы и сохранить скажем в %temp%, откуда потом напр. запустить, зная имя сохранения). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2011, 15:26 |
|
Загрузить файл через IE, дождаться завершения и отловить если что ошибки
|
|||
---|---|---|---|
#18+
Дмитрий77Konst_Oneне стандартный диалог закачки файлов у IE, наверное вы имеете ввиду, а добычный диалог выбора сохранения в файл из ОС. Нет, в виду имелся именно "диалог скачки" (когда уже качает), а не общий диалог Open/Save (который кстати желательно иметь возможность пропустить, задав имя файла из программы и сохранить скажем в %temp%, откуда потом напр. запустить, зная имя сохранения). если именно диалог , который показывает трансфер, то это кастомный диалог самого IE, а не ОС ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2011, 17:47 |
|
Загрузить файл через IE, дождаться завершения и отловить если что ошибки
|
|||
---|---|---|---|
#18+
Konst_Oneесли именно диалог , который показывает трансфер, то это кастомный диалог самого IE, а не ОС Естественно, и я не утверждаю обратного. Хотя, с другой стороны, без IE -ОС не жилец. Собсвенный кастомный диалог с progress-bar и картинками я почти сделал через "NetGrab"-метод /topic/814714&hl= но когда уже был почти готов, отказался от него в пользу трех строчек кода выше, справедливо осознав что потенциальных глюков с моим диалогом будет гораздо больше чем с описанными выше не очень критичными для выполнения треб. задачи проблемами. Там где надо аккуратно, предпочел все же стандартный Microsoft Internet Transfer Control 6.0 (SP6) OCX, с предв. проверкой "автономности" режима IE. Собственно все мотивы и рассуждения в тех топиках описаны. Если что-то может быть интересно сейчас, то только ответ на именно поставленный в этом топике вопрос. Сами понимаете во все те дебри лишний раз без необх. лезть неохота. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2011, 18:14 |
|
|
start [/forum/topic.php?fid=60&msg=36998435&tid=2158942]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 329ms |
total: | 457ms |
0 / 0 |