powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Internet Transfer Control не работает в WIN XP. Не закачать по FTP файл.
7 сообщений из 7, страница 1 из 1
Internet Transfer Control не работает в WIN XP. Не закачать по FTP файл.
    #33713729
attashe0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Подскажите, может быть кто то уже встречался с такой проблемой.

Программа должна скачивать файл с FTP сервера. Для этого используется Internet Transfer Control (Inet). Все тестировалось на WIN 2000 и прекрасно справлялось со своими задачами.
Но при переносе на WIN XP возникла проблема.
С сервером соединяется, отображает список файлов на сервере и их атрибуты. Но при команде загрузить ничего не происходит.
Самое интересное, что если на WIN XP запустить программу по сетке с компьютера на котором стоит WIN 2000 она работает полностью.

Я так понимаю что это связано с разрешением на запись в папках WIN XP. Обычным способом (В закладке свойсва) снять флаг "Только чтение" нельзя, утилита Cacls(для изменения прав доступа, работает из командной строки) говорит о том что директория обработана, но у папки флаг так и остается "Только чтение".
...
Рейтинг: 0 / 0
Internet Transfer Control не работает в WIN XP. Не закачать по FTP файл.
    #33714740
Tauzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня winXP SP2.Скачиваю файлы таким вот образом.Все работает отлично и на win200,win 98 и помоему даже народ на NT4 юзал без проблем мой текст.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Declare Function URLDownloadToFile Lib "urlmon" _
                    Alias "URLDownloadToFileA" ( _
                    ByVal pCaller As Long, _
                    ByVal szURL As String, _
                    ByVal szFileName As String, _
                    ByVal dwReserved As Long, _
                    ByVal lpfnCB As Long) _
                    As Long
Public Function DownLoadFile(URL As String, LocalFilename As String) As Boolean
    Dim lngRetVal As Long
    lngRetVal = URLDownloadToFile( 0 , URL, LocalFilename,  0 ,  0 )
    If lngRetVal =  0  Then DownLoadFile = True
End Function
Private Sub Form_Load()
    ' копирует файл с сайта на  "c:\"
    DownLoadFile "http://www.sql.ru/forum/images/happy.gif", "c:\happy.gif"
    
    MsgBox "c:\happy.gif"
End Sub
...
Рейтинг: 0 / 0
Internet Transfer Control не работает в WIN XP. Не закачать по FTP файл.
    #33714817
attashe0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо за пример иза ответ.

Но меня интересует сейчас именно проблема с Internet Transfer Control.
Объясню почему.
Он работает в асинхронном режиме передачи данных, и позволяет отслеживать состояние загрузки. Файлы довольно большие и получать их могу только по FTP + логин и пароль.
В начале я использовал для получения файлов API FTP функции из wininet.dll. Но из-за зависания процедур при загрузке больших файлов и не возможности нормально отследить статус получения файлов отказался от этой идеи и вернулся к Internet Transfer Control.
Программа в которой это используется полностью готова и выполняет все заложенные в задании операции. И хотелось бы решить проблему "локально", а не менять код.
Тем более что проблема видимо именно в разрешениях директорий на запись или работе сервисов безопасности в WIN XP.
Программа уже используется. Для загрузки файлов ей указывается каталог в компьютере с WIN 2000, который находится в одной сети с компьютером WIN XP на котором установлена программа. И в таком режиме загрузка проходит нормально.
...
Рейтинг: 0 / 0
Internet Transfer Control не работает в WIN XP. Не закачать по FTP файл.
    #33717940
attashe0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,

Проблема так и не решена.
Пришлось изменить код и заменить контрол на API FTP функции.
Использовал связку FtpOpenFile + InternetReadFile в таком виде можно отслеживать статус загрузки файла.

Но и в таком варианте проблема "зависания" программы при больших размерах файла так и осталась. Особенно явно это проявляется при не стабильном подключении к интернет(например модемный доступ).

Если у кого то будут мысли по решению проблем Internet Transfer Control в WIN XP (по протоколу FTP) будет интересно их обсудить.
Я перепробовал все что знал:
- Изменял настройки Брандмауера и отключал его вовсе.
- Открывал порты и раздавал пользователям права.
- Отключал и включал "passive mod" в IE.
- Изменял атрибуты папке в которой работает программа.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Internet Transfer Control не работает в WIN XP. Не закачать по FTP файл.
    #35605619
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаете, у меня тоже функция Inet1.Execute "Адрес", "GET /" перестала в новой ОС работать, а "GET/" дает не то что нужно. Я нашел в MSDN хорошое работающее решенее:

Код: plaintext
1.
2.
3.
Dim s As String
s = Inet1.OpenURL(Text2.Text)
'Проверим ?
Text1.Text = s
...
Рейтинг: 0 / 0
Internet Transfer Control не работает в WIN XP. Не закачать по FTP файл.
    #35605627
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как получить страницу под своим именем ?
Dim s As String
s = Inet1.OpenURL(Text2.Text) Юзверь Пароль Куда задавать ?
...
Рейтинг: 0 / 0
Internet Transfer Control не работает в WIN XP. Не закачать по FTP файл.
    #35605629
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смисле как переменные отдать ?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Internet Transfer Control не работает в WIN XP. Не закачать по FTP файл.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]