Страница: 1 | 2 | 3 |
Вопрос: Работа с Инетом
Добавлено: 05.06.06 14:46
Автор вопроса: Softer | Web-сайт:
Задача стоит такая (а точнее проблема :) ):
прога долна сидеть в трее и переодически закачивать файлы (обновлять уже скаченые). В приципе с треем и всем остальным я разобрался, но при закачке файла АПИ-функцией URLDownloadToFile форма "виснет" причем DoEvents не помогает...
Как мне быть? Может кто уже имеет кусочек кода? или контрол...
Ответы
Всего ответов: 34
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 05.06.06 18:01
пока качает URLDownloadToFile управление не у твоей проги, а у IE, ещё могут быть проблемы с кешированием... советую использовать сокеты...
Номер ответа: 2
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #2
Добавлено: 05.06.06 21:39
Кусочек кода тебе вряд ли поможет.
URLDownloadToFile нужно вызывать в отдельном потоке, чтобы основная прога не замерзала.
Самый простой путь решения - сделай dll, и в ней создавай поток, который будет качать через URLDownloadToFile.
Номер ответа: 3
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #3
Добавлено: 06.06.06 10:38
Геморно на VB. Проще запердолить ActiveX.Exe и оттуда уже подымать столько потоков, сколько понадобится.
Ну ежели человек в сях круто шарит - тады канешна...
Номер ответа: 4
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #4
Добавлено: 06.06.06 11:15
Совсем не геморно.
Просто это... знать надо как...
http://bbs.vbstreets.ru/viewtopic.php?t=19857
Номер ответа: 5
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #5
Добавлено: 06.06.06 11:26
Круто шарить необязательно Достаточно немножко шарить на уровне "умею вызывать апи-функцию".
Activex.exe если не ошибаюсь, требует регистрации в реестре, это так?
Номер ответа: 6
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #6
Добавлено: 06.06.06 11:40
Требует, но только если не является также и запускаемым файлом. Тогда регистрится автоматически.
Насчет ссылки сказать не могу, на vbstreets не регистрился, но, насколько я знаю, пока еще никому не удалось создать нормальный надежный проект в VB с использованием CreateThread. На Сях - пожалуйста, но ведь это уже другая тема...
Номер ответа: 7
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #7
Добавлено: 06.06.06 11:42
Просто это... знать надо как...
этот способ конечно повышает вероятность, что прога не рухнет, но на все сто не гарантирует. Всегда есть вероятность, что при создании VB-потока прога склеит ласты. Девять раз проскочит, на десятый - вылетит.
LOL, это вроде ты спрашивал про dll2lib?
Ты часом не к vb линковал .lib-файлы? Если так, то где есть инфа про линкование lib? Помню что видел - не могу снова найти
Номер ответа: 8
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #8
Добавлено: 06.06.06 11:48
Какой CreateThread?
Зачем CreateThread?
Никаких CreateThread.
И, тем не менее, без блокировки.
Номер ответа: 9
Автор ответа:
Softer
ICQ: 203660381
Вопросов: 29
Ответов: 205
Web-сайт:
Профиль | | #9
Добавлено: 06.06.06 11:52
Ну на URLDownloadToFile я уже решил проставить крест....
А как правильно организовать на сокетах? Как сделать фильтровку служебной информации и полезной?
Номер ответа: 10
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #10
Добавлено: 06.06.06 11:56
Ну, я вообще то линковал в С++. Хотя про VB тоже видел. Вроде как VBшный компилятор - это старый переработаный сяшный. Но находил вроде в гугле.
ЗЫ Эта dll2lib - опасная чтука, одна библа у меня после такой ковертации и линковки просто уходить в GPF стала...
2GSerg Тогда как, поясни. Надеюсь, не через таймер?
Номер ответа: 11
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #11
Добавлено: 06.06.06 11:59
если пойти по заданной ссылке, то можно убедиться в обратном. Можно также найти и другие примеры успешного юзанья CreateThread в VB
Номер ответа: 12
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #12
Добавлено: 06.06.06 12:02
ЗЫ Еще было в нете полно примеров с попытками создать Apartment-threaded приложения в VB, но это полный лол - прям русская рулетка какая-то
ИМХО, кроме ActiveX.EXE дельного тут предложить трудно, хотя dll'ки и поддерживают apartment, но, повторюсь, в VB6 организовать БЕЗОПАСНУЮ многопоточность таким образом нельзя.
Номер ответа: 13
Автор ответа:
Softer
ICQ: 203660381
Вопросов: 29
Ответов: 205
Web-сайт:
Профиль | | #13
Добавлено: 06.06.06 12:02
Народ, помогите с закачкой фалов! А разбираться с потоками будем потом... ;'-(
Номер ответа: 14
Автор ответа:
Softer
ICQ: 203660381
Вопросов: 29
Ответов: 205
Web-сайт:
Профиль | | #14
Добавлено: 06.06.06 12:04
Т.е. файлов....
Номер ответа: 15
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #15
Добавлено: 06.06.06 12:05
если пойти по заданной ссылке, то можно убедиться в обратном. Можно также найти и другие примеры успешного юзанья CreateThread в VB
Каким образом? Что приложение запустилось? Круто. Пять раз запустил корректно, на шестой - GPF. Запустил на другой машине - GPF получил сразу.
Приведи хотя бы один пример успешного(!) юзанья CreateThread в VB. А я тебе вышлю скрин такой красивый с global protection fault. Если, конечно, приложение сразу не свернется.
VB6 непотокобезопасен в принципе, модель свободных потоков для него - смерть.