Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2011, 10:19   #1
_bss_
Новичок
Джуниор
 
Регистрация: 02.02.2011
Сообщений: 6
По умолчанию Загрузка файла из Webbrowser без диалогового окна

Добрый день.

Прочитал все темы по работе с сетью, но решение не нашел.
Очень хотел попросить помощи в решении следующей проблемы.

Описание: Существует некий сайт, например, http://xxxzzz.ru (не могу дать название из-за проблем со службой безопасности). Использовать его можно только через Internet Explorer (или WebBrowser - у меня получилось). Авторизация на главной странице проходит через модуль http://xxxzzz.ru/auth.jasp, который представляет собой набор вложенных фреймов, достучаться до самого внутренного фрейма с авторизацией так и не получилось. Поэтому использовал WebBrowser, а авторизацию провожу вручную, набирая логин/пароль. Дальше программно через WebBrowser.Navigate('') дохожу до нужного раздела сайта, который генерирует Word-овские отчёты по прямой ссылке, например, WebBrowser.Navigate('http://xxxzzz.ru/Report.aspx?Date1=01.01.2011&Date2= 01.02.2011')

Вопрос: в результате выполнения запроса WebBrowser не переходит никуда, а выдаёт диалоговое окно на сохранение файла. Как загрузить файл без ручного ввода имени файла в диалоговом окне, а в идеале вообще без диалогового окна (т.к. часто необходимо выгружать до 70 подобных запросов-отчётов)?
_bss_ вне форума Ответить с цитированием
Старый 02.02.2011, 10:33   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Выкинуть к едреней фене WebBrowser и воспользоваться IEDownload или IEMultiDownload из состава стороннего EmbeddedWB
mss вне форума Ответить с цитированием
Старый 02.02.2011, 11:15   #3
_bss_
Новичок
Джуниор
 
Регистрация: 02.02.2011
Сообщений: 6
По умолчанию Спасибо.

Спасибо. С Embedded буду разбираться.
А есть ли решение в поставленных рамках, (в WebBrowser)
_bss_ вне форума Ответить с цитированием
Старый 02.02.2011, 11:30   #4
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Нет. EmbWB кроме прочих "вкусностей" ликвидирует как раз эту проблему.
mss вне форума Ответить с цитированием
Старый 02.02.2011, 12:00   #5
_bss_
Новичок
Джуниор
 
Регистрация: 02.02.2011
Сообщений: 6
По умолчанию Хорошо

Будем пробовать. Пока программа на этапе загрузки зависла и не отвисает. В Word отчёт не скачался. Что-то не так с кодом?
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
     EmbeddedWB1.Navigate('http://xxxzzz.ru/auth.jasp'); // далее вводим логин/пароль
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
     EmbeddedWB1.Navigate('http://xxxzzz.ru/reports.jasp');
     ShowMessage('OK'); // для остановки до момента загрузки предыдущей страницы
     IEDownload1.PutFileName := 'c:\tmp\2\1-1.doc'; // имя файла
     IEDownload1.Go('http://xxxzzz.ru/Report.aspx?Date1=01.01.2011&Date2= 01.02.2011'); // Собственно то, что надо скачать представляет *.doc файл
end;
Последовательно нажимаю button1, button2
_bss_ вне форума Ответить с цитированием
Старый 02.02.2011, 12:58   #6
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

режим загрузки синхронный ?
mss вне форума Ответить с цитированием
Старый 02.02.2011, 13:14   #7
_bss_
Новичок
Джуниор
 
Регистрация: 02.02.2011
Сообщений: 6
По умолчанию

IEDownload1 Options: [AsyncStorage, SilentOperation]
_bss_ вне форума Ответить с цитированием
Старый 03.02.2011, 13:16   #8
_bss_
Новичок
Джуниор
 
Регистрация: 02.02.2011
Сообщений: 6
По умолчанию Спасибо всем. Решение найдено

2 дня понадобилось на решение вопроса, в том числе при налаживании взаиможействие с EmbeddedIE и IEDownload.
Никак не мог заставить скачивать файл, тем более с нужным именем в нужную папку, хотя переписал процедуру Go(url) на Go(url, filename).

Оказалось, что скаченный в первый раз Embedded был старой версии (14.61). Последняя версия лежит здесь (http://www.bsalsa.com/downloads.html). Там же инструкция по установке

Решение проблемы:
Кинул 2 компонента на форму, как рекомендовал mss, EmbeddedWB и IEDownload. Настроил 2 кнопки (чтобы получить задержку при загрузках страниц и ввести пароль)

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
      EmbeddedWB1.Navigate('http://xxxzzz.ru/auth.jasp'); // далее вводим логин/пароль
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
var
   i               : integer;
   ListOfReports   : TListOfReportForDownloading;
   NumberOfReports : integer;
begin
     EmbeddedWB1.Navigate('http://xxxzzz.ru/reports.jasp');
     ShowMessage('OK'); // для остановки до момента загрузки предыдущей страницы

     ListOfReports   := CreateListOfReportsForMonitoring; // создал список запросов (это моя процедура - здесь как угодно)
     NumberOfReports := Length(ListOfReports);

     for i := 0 to NumberOfReports - 1 do
     begin
     IEDownload1.Go(ListOfReports[i].URL, ListOfReports[i].FileName, 'c:\tmp\2\')); // Собственно то, что надо скачать, имя файла, дирректория

          ProgressBar1.Position := Round((i + 1) / NumberOfReports * 100); // Это для отбражения прогресса загрузки всех отчётов

     end;
end;

Последний раз редактировалось _bss_; 03.02.2011 в 15:03.
_bss_ вне форума Ответить с цитированием
Старый 04.07.2012, 14:22   #9
lega4
 
Регистрация: 16.05.2010
Сообщений: 6
По умолчанию

Похожая прьблема есть, подскажите плз. Надо загрузить файл, диалог загрузки появляется после клика по кнопке, а этот клик вызывает некую javascript-функцию. Т.е. адреса загружаемого файла нету как такового, файл генерируется post-запросом.
ICQ 39(один)3563, ответ на антиспам - 6
lega4 вне форума Ответить с цитированием
Старый 04.07.2012, 14:42   #10
lega4
 
Регистрация: 16.05.2010
Сообщений: 6
По умолчанию

<удалить >
ICQ 39(один)3563, ответ на антиспам - 6
lega4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка наличия диалогового окна Diego__ Microsoft Office Word 2 19.11.2010 19:18
У диалогового окна пропадает фон ssashas Помощь студентам 0 25.04.2010 21:22
Создание диалогового окна в Word Busine2009 Фриланс 3 13.07.2009 09:37
Вызов диалогового окна Sapsan Общие вопросы C/C++ 6 30.03.2009 23:03
WebBrowser загрузка с локального файла kuzmich Общие вопросы Delphi 3 10.11.2008 21:09