|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
Доброе время суток господа ! Случаем не приходилось отслеживать процесс копирование через Ftp протокол Хочу визуализировать это процесс через ProgressBar Подкиньте код !! Спасибо ! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2007, 15:40 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
А разве на VB можно делать колбеки? В принципе, надо использовать функцию InternetSetStatusCallback, передать ей адрес своей функции формата InternetStatusCallback и будешь получать описание что происходит внутри wininet функций. Но на VB мне кажется это не сделать. Зато можно сделать dll-ку или ActiveX, вынести всю работу с wininet в нее, и можно будет жить даже в VB :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2007, 17:55 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
на vbip.com есть класс на базе Winsocket в котором есть Progress бесплатная, со всеми исходниками я им и пользуюсь, проблем не было ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2007, 05:14 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
White OwlА разве на VB можно делать колбеки? А с какого бодуна ты решил что нельзя? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2007, 10:09 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
Благодарен за общение White_Owl - идею с InternetSetStatusCallback понял, воспользуюсь ! Orunbek - с Vbip.com ознакомился, а FtpClient класс где-то скопировать можно (по сайту не нашел.... пардон может не туда смотрел) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2007, 12:27 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
да... у них поиск тормознутый можно googl'ом FTP site:vbip.com находит сразу The FTP client Visual Basic source code library ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2007, 12:50 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
AndrF White OwlА разве на VB можно делать колбеки? А с какого бодуна ты решил что нельзя?А что можно? Ну покажи мне тогда, конкретный синтаксис уже упомянутой задачи: повесить колбек на wininet функции. Я знаю как сделать это на С, но не знаю как на VB. Научи меня. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2007, 19:01 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
И попутно - где можно найти значение флагов API Например MSDN утверждает что функция FtpGetFile может работать асинхронно - для это необходимо задать флаг INTERNET_FLAG_ASYNC - а которое его значение ????? (и огласите весь список - ПОЖАЛУЙСТА....INTERNET_FLAG_CACHE_ASYNC,... и т.д.) Если не ошибаюсь при создании указателя hSoft = InternetOpen("OUTLOOK",1,vbNullString,vbNullString, INTERNET_FLAG_ASYNC ) А если необходимо работа не всей группы функций этого указателя, а только процесса копирования (FtpGetFile) ? Cоздавать отдельный поток ? Или можно сделать асинхронной только одну функцию ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2007, 22:53 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
HOME_XИ попутно - где можно найти значение флагов APIВ API :) Смотри wininet.h там они все перечислены. Лучше всего, выкачай себе psdk, там вообще самое полное описание API, но если лениво, ходи сюда: http://search.cpan.org/src/JDB/libwin32-0.26/Internet/WININET.H HOME_XНапример MSDN утверждает что функция FtpGetFile может работать асинхронно .... А если необходимо работа не всей группы функций этого указателя, а только процесса копирования (FtpGetFile) ? Cоздавать отдельный поток ? Или можно сделать асинхронной только одну функцию ?Нет. Если "главный" хендл открыл синхронными или асинхронным, все его потомки будут синхронными или асинхронными соотвественно. Переключаться на ходу нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2007, 23:45 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
Благодарен за участие и помощь господа ! Относительно колбека - сделал переадресацию на свой тип Ошибки нет, но эффекта тоже ????!!!! AndrF "А с какого бодуна ты решил что нельзя?" Уверен что это возможно ? Можно увидеть код ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2007, 12:04 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
Ну и? Using WinInet APIs Asynchronously Within Visual Basic Код: 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.
У меня в CallBack тишина. Гребаным контролом Microsoft Internet Transfer Control 6.0 (SP6) пользоваться нехочецца а проблема налицо: Приконнектиться к сайту и чего-нибудь считать ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2010, 23:44 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
Дмитрий77Ну и? Код: plaintext
Дмитрий77 Код: plaintext
А так, все вроде правильно пока. Хотя я предпочитаю вешать колбек на соединение а не на библиотеку целиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 00:25 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
White Owl, Я такие заумные коды писать не умею. Тупой, все. Но умею находить. И уже нашел, и хорошего качества: http://www.vbnet.ru/forum/show.aspx?id=69610 (Номер ответа: 7) Причем реально рабочий. Но глючит. Например надо прочитать текстовой файл: www.myserver.com/downloads/file.txt Меняем там: Код: plaintext 1. 2. 3. 4.
При этом может подвиснуть. А если скомпилировать, то exe-шник вылетает. Сумеете допилить? Я врядли, как бы вы меня не пытались учить. Если сумеете (при вашем уровне думаю да если это в принципе возможно), то код в студию. Если нет, то давайте вместе согласимся с тем что пишут умные люди. INFO: Using WinInet APIs Asynchronously Within Visual Basic MicrosoftIt should be noted that Microsoft does not recommend using WinInet in Visual Basic in an asynchronous mode. It should also be noted that Microsoft does not support such use. Потому что сутки лазить по интернету и видеть там только вздохи и всхлипы, что ни фига ни у кого не работает и не работало (в vb6), сопряженные с умными советами чего надо и ссылками на C++ мне надоело, чему данный топик поднятый со дна суть подтверждение. Так что приведенная ссылка это последний случайный шанс. Но код в том виде как есть глючный. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 01:47 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
По идее надо допиливать найденный код (в VB среде он почти рабочий) следующим образом. 1.Идейно Руководствоваться статьей Using WinInet HTTP functions in Full Asynchronous Mode 2. Вылетает он скорее всего из за игнорирования автором хорошего кода того о чем пишет Microsoft, т.е. must use a declaration like below: Код: plaintext 1. 2. 3. 4.
Видимо именно по этим причинам CopyMemory и дает сбой в exe, хотя как-то и б.м. вытягивает в VB-среде. По идее предложенная в статье 1 InternetReadFileEx должна исправить ошибку допущенную в 2. Я сумел только накопать/родить какие-то куски: Код: 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. 42. 43. 44.
Нет, мне не по зубам... Уже думаю наплевать и использовать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Одна беда-контрол несчастный за прогой таскать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 04:53 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
Дмитрий77Причем реально рабочий. Но глючит.На первый взгляд там все правильно написано, нечему глючить. Добавь отладочных сообщений в колбек и посмотри внимательнее в какие моменты оно у тебя хулиганит. Скорее всего неусточивая сеть... Дмитрий77Сумеете допилить? Я врядли, как бы вы меня не пытались учить. Если сумеете (при вашем уровне думаю да если это в принципе возможно), то код в студию.Неа, не сумею. У меня VB6 нету :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 18:20 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
White Owl, White Owl...в какие моменты оно у тебя хулиганит. Скорее всего неусточивая сеть... думаю оно таки нормально себя ведет. Асинхронность нужна именно для "неустойчивой" сети: Приконнектиться к сайту и чего-нибудь считать Эту тему хоть читали, с чего бы я вдруг в такие дебри и мертвеца еще вдобавок откопал... Скорее всего м.б. код там и нормальный... Думаю я дергаю кнопку Код: plaintext 1. 2.
Ну т.е. во пример не вполне врубился, а от этого и Inet1 вылетит, не то что API. Но Вы не поняли: когда запускаешь кнопку (даже в первый раз) в откомпилированном exe, прога валится (и будет закрыта) с предложением сообщить туда-то, и виновата msvbvm60.dll. И понятно что работать на таких условиях с этим кодом нельзя. Поэтому пока я заменил в проге у себя API на Inet1 контрол, хоть и очень не хотел. М.б. тест-проект аккуратно еще раз сделать и выложить? Пусть "спецы" посмотрят что не так. Если честно обидно за код, потому что этот коллбек на vb6 на каждом углу в инете не валяется, везде одни вопли и плачи на эту тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 19:59 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
Дмитрий77Думаю я дергаю кнопку Код: plaintext 1. 2.
Добавь в обработчик кнопки заперет самой кнопки а в колбек по окончанию приема файла разрешение кнопки. Дмитрий77Но Вы не поняли: когда запускаешь кнопку (даже в первый раз) в откомпилированном exe, прога валится (и будет закрыта) с предложением сообщить туда-то, и виновата msvbvm60.dll.В какой момент валится? Разбросай по коду отладочные сообщения. Пусть они пишут в файл "достиг точки 123", "достиг точки 124" и тд. Потом посмотри после какой точки произошел GPF. Скорее всего ты где-то забыл проинициализировать приемный буффер... PS, не надо мне выкать. Я один человек а не группа товарищей. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 21:03 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
White OwlДмитрий77Думаю я дергаю кнопку Код: plaintext 1. 2.
Добавь в обработчик кнопки заперет самой кнопки а в колбек по окончанию приема файла разрешение кнопки. Не, это я себя обнадежил. Дело не в этом и точно не в плохом коннекте. Там с буферами и т.п. думаю беда полная, оно на нек. страницах весится капитально по непонятному принципу и с недожиданием это никак не связано. White OwlДмитрий77Но Вы не поняли: когда запускаешь кнопку (даже в первый раз) в откомпилированном exe, прога валится (и будет закрыта) с предложением сообщить туда-то, и виновата msvbvm60.dll.В какой момент валится? Разбросай по коду отладочные сообщения. Пусть они пишут в файл "достиг точки 123", "достиг точки 124" и тд. Потом посмотри после какой точки произошел GPF. Скорее всего ты где-то забыл проинициализировать приемный буффер... Пока первая часть не разрулится к этой переходить рано. White OwlPS, не надо мне выкать. Я один человек а не группа товарищей. Извини, не привык тыкать людям, которые как мне кажется заслуживают уважения. Потыкать могу на CИ-шной ветки форума, куда сдуру как то зашел и встретил извините в основном козлов, если не в плане знаний, то по крайней мере в плане манер их ответов. Короче даю проект "как есть", т.е. без собственных "приработок", глядишь кто и взглянет опытный (у кого VB6 еще установлен). По умолчанию он коннектится на index mail.ru, там как раз он якобы не глючит в VB среде. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2010, 06:03 |
|
FtpGetFile - отслеживание процесса копирование
|
|||
---|---|---|---|
#18+
На всяк. случай еще умный модуль в догрузку, если кто решит копаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2010, 06:07 |
|
|
start [/forum/topic.php?fid=60&msg=34267123&tid=2159153]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 318ms |
total: | 466ms |
0 / 0 |