загрузить все картинки на странице

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

загрузить все картинки на странице

Сообщение SHURUP » 09.04.2005 (Сб) 1:43

Вопрос по MSHTML.HTMLDocument.
В Вебброузере1 страница с картинками, но у пользвателя в настройках ИЕ - "не отображать изображения". А их НАДО грузить.
Лазил в MSDN-е - не нашел (точно не знаю, что искать)
Наткнулся на MSHTML.HTMLImg - чуствую, что близко, но подходящего метода не нахожу.
Если кто-то может - дайте пример как загрузить все картинки на веб-странице. (типа по всем ним правой кнопкой покликали и повыбирали "Показать рисунок")
-----------
Заранее благодарен! Я знаю, вы можете… :roll:
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.04.2005 (Сб) 4:47

Код: Выделить всё
Option Explicit

Private Sub Form_Load()
  WebBrowser1.navigate "www.ya.ru"
End Sub

Private Sub Command1_Click()
  sfgh WebBrowser1.document
End Sub

Private Sub sfgh(ByVal d As IHTMLDocument2)
  Dim i As IHTMLImgElement
 
  For Each i In d.All.tags("img")
    MsgBox i.href
  Next
End Sub


И, насколько я понимаю, грузить их придётся самому :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 09.04.2005 (Сб) 7:01

Код: Выделить всё
For i=0 to WebBrowser1.document.images.length-1
MsgBox WebBrowser1.document.images(i).src
Next

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 09.04.2005 (Сб) 14:23

Не, не то!!! Адресс я знаю, как узнать. Картинки находятся в той-же папке, что и страница (Файл.html).
Просто нужно, чтобы они были отображены на странице. (Если это конечно возможно)
Ежели нет другого выхода - тогда может кто-то подскажет, ключ в реестре , отвечающий за отображение Картинок.
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 09.04.2005 (Сб) 19:49

SHURUP
У нас с тобой общая проблема. Только мне надо картинки заблокировать.

Описывается следующая вещь:
MSDN писал(а):The WebBrowser Control gives you control over what it downloads, displays, and executes. To gain this control, you need to implement your host's IDispatch so it handles DISPID_AMBIENT_DLCONTROL. When the WebBrowser Control is instantiated, it will call your IDispatch::Invoke with this ID. Set pvarResult to a combination of following flags, using the bitwise OR operator, to indicate your preferences.


Несмотря, что для меня это дикий, непролазный лес, все же я догадался, что мне надо как то этот интерфейс имплементировать. Там даже пример дали...на Си, блин! :evil:
Код: Выделить всё
STDMETHODIMP CAtlBrCon::Invoke(DISPID dispidMember, REFIID riid,
                               LCID lcid, WORD wFlags,
                               DISPPARAMS* pDispParams,
                               VARIANT* pvarResult,
                               EXCEPINFO* pExcepInfo,
                               UINT* puArgErr)
{
    switch (dispidMember)
    {
    case DISPID_AMBIENT_DLCONTROL:
        pvarResult->vt = VT_I4;
        pvarResult->lVal = DLCTL_DLIMAGES | DLCTL_VIDEOS | DLCTL_NO_SCRIPTS;
        break;

    default:
        return DISP_E_MEMBERNOTFOUND;
    }

    return S_OK;
}


Кто сможет обьяснить как это прикрутить?
Или более общий вопрос, как имплементировать IDispatch::Invoke ?
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 09.04.2005 (Сб) 22:25

FleX_2004
Туда туда... Ведь в реестре прописывать, значит менять поведение всей системы. А мой метод, в данном, локальном, экземпляре.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.


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

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

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

    TopList