|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
Т.е. вопрос в чем, как я понимаю задачу... На сервере лежит текстовой файл http://myserver.com/somefile.txt В нем содержится какая-то информация: скажем список заблокированных ключей (компьютеров) какие-то другие инструкции типа: PC-ID 12345 : instruction1=aaa;instruction2=bbb; PC-ID 67890 : instruction1=ФФФ;instruction2=ТТТ; идея ясна, прога туда смотрит(скажем, при запуске) и на основании считанного чего-то делает:например говорит что лицензия недействительна, или открывает страничку насчет проапгрейдиться и т.п. Требования какие: 1) чтоб если скажем нет интернета, более точно "если информация не получена" ничего не делала и ошибок не выдавала 2) чтоб это не выглядело слишком похабно и антивирусы не наглели ну и т.п. Один метод я знаю, использовал для закачки информации в служебной проге: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Единственно, чтоб это было API, а не какая-нибудь vb-самопалка типа объект WebBrowser с анализом html-кода. Есть идеи? Как лучше реализовать этот механизм? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2010, 09:09 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2010, 10:23 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
Shocker.Pro 9837410 Ну и? ХМXML изучать? У меня маленькая текстовуха латинскими буквами типа конфига. Мож мне еще БД туда запихнуть какую-нибудь похитрее и понавороченнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2010, 11:13 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
По сути что-то типа Microsoft Internet Transfer Control 6.0 (SP6) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
И насколько мои требования 1-2 удовлетворяются?... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2010, 12:24 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
Куда-то сюда видимо Wininet.dll WinINet Functions InternetOpen InternetOpenUrl InternetReadFile InternetOpen InternetConnect HttpOpenRequest InternetReadFile Ну конечно примеры бы не повредили. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2010, 12:41 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
Так нормально? http://www.bahamasissues.com/archive/index.php/t-3953.html Особо не вдумывался пока. Вроде оно делает чего хочу. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2010, 12:56 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
Но странно... при повторном запуске этого кода(нажатии кнопки) с тем же URL, но без перезапуска проги, повторного обращения к серверу не происходит. В Wireshark нарочно смотрел. Мож чего не хватает? Хотя...я ж не каждую секунду туда лазю, а только при запуске проги... плевать наверно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2010, 13:07 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
> Автор: Дмитрий77 > Но странно... при повторном запуске этого кода(нажатии кнопки) с тем же URL, но без Наверное из кеша берёт, чьего-то :) Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2010, 14:25 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
Игорь Горбонос, хуже другое: запускаю этот код на тестовой висте: Авира тут же вякает: TR/VB.Downloader.Gen Пакую протектором, не затыкается: TR/Crypt.ASPM.Gen Эти антивирусы совсем е..нулись. Есть шанс, что в составе большого защищенного файла этот код не будет так восприниматься. Авира хотя бы вменяемая, они исправляют если им пишешь... Но все равно наф. это нужно...когда это через месяц кем-то обнаруживается, и хорошо если скажет. Че делать то? Я прогу пишу или с антивирусами воюю в конце концов...? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2010, 14:38 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
В составе большого exe-шника ни в открытом ни в защищенном виде вроде ничего не детектится, но конечно все это вилами по воде. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2010, 15:02 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
Натолкнулся таки на багу с примером приведенным выше: Код: plaintext
Вот это место кода подлит: Код: plaintext 1. 2. 3.
Причем я запускаю функцию SendAPIRequest не в "основном потоке", а таймером (срабатывает единожды), но это здесь не спасает. Висеть эти 10 сек будет вся прога: кнопки не нажимаются, если упорствовать то "не отвечает", потом правда "отвисает". Но у меня нет цели обязательно скачать файл, если ошибка, значит "не судьба", но 10сек висеть с часиками это не дело. Пытался гуглить проблему, самое ценное что нарыл: Using WinInet APIs Asynchronously Within Visual Basic Надеюсь что это именно указатель на решение описанной проблемы. Но там не код в чистом виде, а рекомендации чего делать. Причем как понял из другого нагугленного люди спотыкаются при попытках реализовать этот асинхронный вызов с CallBack. Как вызывать CallBack там описано; Пример самого CallBack там дан. Как декларировать InternetReadFile там тоже написано. Но непонятно с ходу откуда, когда и как вызывать этот InternetReadFile. Чего писать в CallBack? Как оттуда выходить? Произойдет ли выход сразу или даст возможность программе спокойно работать эти 10 сек? А точно ли она выйдет? Шаги 4-6 вообще непонятно и ни копейки кода. Т.е. дело ясное что дело темное... М.б. есть где какой пример конкретный и рабочий? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2010, 18:22 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
Может наплевать на эти API-асинхронности и на Microsoft Internet Transfer Control 6.0 (SP6) и использовать вот это: How To Use the AsyncRead Method to Download Files Готовый хороший пример на эту тему как бы есть: http://vb.mvps.org/samples/NetGrab/ Приложение эта штука не завешивает, на ошибку "ожидания" реагирует достаточно быстро. Антивирусы на нее вроде не ругаются, ко всем остальным методам они как-то частенько неравнодушны. Для загрузки большого файла тоже вроде удобно использовать... Единственное не очень нравится что загружает в TMP-файл, не помешало б уметь в переменную загружать. Правильно ли я понимаю, что строится UserControl и за собой ничего (как в случае ocx) таскать не надо и будет гарантированно работать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2010, 09:17 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
Дмитрий77, мне нужно абсолютно то же самое с теми же целями. Вопрос тут, как я понял, сводится с тому, какие библиотеки использовать MSXML2.XMLHTTP - msxml3.dll NetGrab - kernel32 Inet1 - msinet.ocx webbrowser - shdocvw.dll мне нужен наиболее простой в использовании, наиболее стабильный, при этом не требующий таскать с собой сторонние dll. MSXML2.XMLHTTP сложен в использовании. сейчас более-менее стабилен, но код занимает сотни строк и несколько десятков таймеров. Inet1 и webbrowser требуют установку библиотек, однозначно не подходят. NetGrab повёл себя хорошо, но код уж очень замуторный ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 02:13 |
|
Приконнектиться к сайту и чего-нибудь считать
|
|||
---|---|---|---|
#18+
Клевер можешь скинуть свой код на основе NetGrab? без всего лишнего В указанном примере нет ничего лишнего. Если ты хочешь упрощать и выкидывать, то ты должен все это штудировать, читать описания API и т.п. и понимать каждую строчку. Но как я уже писал 3 года назад, я использую Inet1. Это тот случай когда OCX надо таскать с собой, и да, регистрировать в %SystemDir%. Если тебе пофиг что программа висит пока качается файл, либо тупит из-за отсутствия интернета (потому что в VB6 один поток), то можешь использовать API из "wininet". Но имей еще в виду, что антивирусы хронически не переваривают данную dll. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 03:37 |
|
|
start [/forum/topic.php?fid=60&msg=38501705&tid=2156634]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 161ms |
0 / 0 |