сохранение страницы в файл

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
skulida
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 28.06.2003 (Сб) 12:16
Откуда: Санкт-Петербург

сохранение страницы в файл

Сообщение skulida » 28.06.2003 (Сб) 12:25

у меня очень простой вопрос:
как сохранить открытую страницу в файл, т.е.

Dim Adres As String
Private Sub Form_load()
Adres = "http://......"
WebBrowser1.Navigate Adres
End Sub

дальше как открытый документ сохранить?
спасибо

Boris_BGB
Флудер-Энтузиаст
Флудер-Энтузиаст
 
Сообщения: 661
Зарегистрирован: 11.12.2002 (Ср) 11:41

Сообщение Boris_BGB » 28.06.2003 (Сб) 18:40

На сколько я понимаю, то открытая страница хранится в оперативной памяти. Следовательно нужно через АПИ к ней обратится, затем извлечь рисунки страницы из интернет кэша и поставить их на своё место.
Код будет очень длинный, так что проще сохранять их в ручную.
SkateBoarding is not a crime!

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 30.06.2003 (Пн) 5:12

2Boris_BGB: не надо ни каких апей
у WebBrowser для этого есть метод
ща свой исхлдничек покопаю...
ага нашел. пример того, как это сделать с помощью меню
Под сохранить я понимаю действия:
- Записать
- записать как
- распечатать, установив предварительно параметры страницы

Первый пункт меню стандартно File с именем mnuFile. При выборе этого пункта проверяется возможны ли вышеперечисленные действия:

Код: Выделить всё
Private Sub mnuFile_Click()
    Dim status As Boolean
    status = (WebBrowser1.QueryStatusWB(OLECMDID_SAVE) And OLECMDF_ENABLED)
    Me.mnuFileSave.Enabled = status
    status = (WebBrowser1.QueryStatusWB(OLECMDID_SAVEAS) And LECMDF_ENABLED)
    Me.mnuFileSaveAs.Enabled = status
    status = (WebBrowser1.QueryStatusWB(OLECMDID_PAGESETUP) And OLECMDF_ENABLED)
    Me.mnuFilePageSetup.Enabled = status
    status = (WebBrowser1.QueryStatusWB(OLECMDID_PRINT) And OLECMDF_ENABLED)
    Me.mnuFilePrint.Enabled = status
End Sub

И в зависимости от переменной status определяется доступность подпунктов меню с характерными названиями
– Save
- Save As
- PageSetup
- Print
При выборе доступного пункта меню выполняются следующие процедуры:

Код: Выделить всё
Private Sub mnuFileSave_Click()
    On Error Resume Next
    WebBrowser1.ExecWB OLECMDID_SAVE, OLECMDEXECOPT_DODEFAULT
End Sub

Private Sub mnuFileSaveAs_Click()
    On Error Resume Next
    WebBrowser1.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_PROMPTUSER
End Sub

Private Sub mnuFilePageSetup_Click()
    On Error Resume Next
    WebBrowser1.ExecWB OLECMDID_PAGESETUP, OLECMDEXECOPT_PROMPTUSER
End Sub

Private Sub mnuFilePrint_Click()
    On Error Resume Next
    WebBrowser1.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER
End Sub


При выполнении этих процедур возникают стандартные диалоги, привычные глазу пользователя Win.
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

skulida
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 28.06.2003 (Сб) 12:16
Откуда: Санкт-Петербург

Сообщение skulida » 30.06.2003 (Пн) 10:44

[quote="Cyrax"]
Хорошо, ноя имел ввиду програмное сохранение, без ди алоговых окон с именем файла - текущая дата.
Вот я попробовал процедуру

Private Sub Command1_Click()
WebBrowser1.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_PROMPTUSER

End Sub

так работает, но предлагается сохранитиь в ручную через диалоговое окно, если OLECMDID_SAVE далее
OLECMDEXECOPT_DONTPROMRUSER и указываю путь не работает.
Может подскажите синтаксис этого метода. как сохранить открытую
страницу без диалогов?
спасибо

skulida
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 28.06.2003 (Сб) 12:16
Откуда: Санкт-Петербург

Сообщение skulida » 01.07.2003 (Вт) 9:39

Ну что, господа программисты, буду вас стыдить понемножку -
никто так и не помог начинающему..
Оказывается в VB есть контрол Microsoft Internet Transfer Control, с помощью которого можно решить мою задачу следю образом:
Private Sub Form_load()
Dim vData As Variant
vdata = Me.Inet1OpenURL("Http://.....", icString)
Open "C:\00.html" For Output As #1
Print #1, , vData
Close #1
Call Unload_Form
End Sub
Private Sub Unload_Form()
Unload Form1
End Sub

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 01.07.2003 (Вт) 10:36

skulida писал(а):Ну что, господа программисты, буду вас стыдить понемножку -
никто так и не помог начинающему..
Оказывается в VB есть контрол Microsoft Internet Transfer Control, с помощью которого можно решить мою задачу следю образом:
..............

логично...
это если у тебя на страничке только текст... а если там еще и картинки будуть? тогда как?
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

skulida
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 28.06.2003 (Сб) 12:16
Откуда: Санкт-Петербург

Сообщение skulida » 02.07.2003 (Ср) 9:41

to ALL
Да рано я обрадовался...
почему-то этот код работает на половину, т.е. сохраняет страницу не целиком, а только 1,09 кб....
Подскажите, пожалуйста, в чем может быть дело?

Private Sub Form_load()
Dim vData As Variant
vdata = Me.Inet1OpenURL("Http://dp.ru/dpspravka_prn.php3", icString)
Open "C:\00.html" For Output As #1
Print #1, , vData
Close #1
Call Unload_Form
End Sub
Private Sub Unload_Form()
Unload Form1
End Sub


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 28

    TopList