Функция CoCreateInstance - работа с InternetExplorer

Тема в разделе "WASM.WIN32", создана пользователем bugmenot, 17 дек 2008.

  1. bugmenot

    bugmenot New Member

    Публикаций:
    0
    Регистрация:
    4 дек 2006
    Сообщения:
    21
    Функция CoCreateInstance - работа с InternetExplorer
    Как с использование функции CoCreateInstance(Из ole32.dll) создать обьект InternetExplorer и зайти на wasm.ru :)?

    Вообщем меня интересует вот это: (Пример правда на VBS) но на ассемблере:dntknw:
    Код (Text):
    1. objIE = CreateObject("InternetExplorer.Application")
    2. objIE.Visible = False
    3. objIE.Navigate "http://mail.ru/"
    4. WScript.Sleep 300
    5. Set objForm = objIE.Document.forms("Auth")
    6. objForm.elements("Login").value = "Vasya"
    7. objForm.elements("Domain").value = "bk.ru"
    8. objForm.elements("Password").value = "111"
    9. objIE.Visible = True
    Или хотя бы вот это:
    Код (Text):
    1. objIE = CreateObject("InternetExplorer.Application")
    2. objIE.Navigate "http://mail.ru/"
    Если кто знает откликнитесь :)...
     
  2. bugmenot

    bugmenot New Member

    Публикаций:
    0
    Регистрация:
    4 дек 2006
    Сообщения:
    21
    Помогите, я новичок. Весь код даже не надо, а только вызов самих функций (Все равно я на скриптовом языке функции вызываю :)), компилятор (Там fasm или masm :)) - не имеет для меня значения.
    :) Пожалуйста...
    Да, и извините, может мне в раздел для начинающих надо. Вообщем помогите чем можете...
     
  3. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Описание всех методов, свойст и событий
    http://msdn.microsoft.com/en-us/library/aa752084(VS.85).aspx
     
  4. bugmenot

    bugmenot New Member

    Публикаций:
    0
    Регистрация:
    4 дек 2006
    Сообщения:
    21
    Спасибо конечно, но все таки можно кусочек кода на ассемблере :)...
    Т.е. перечень функций для осуществления маленького кусочку кода:
    Вроде:
    invoke CoCreateInstance ...
    invoke CoInitialize ...
    invoke ...

    Т.е. описание функций с параметрами... :)
     
  5. Maratyszcza

    Maratyszcza New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    32
    InternetExplorer.Application - это ProgID. Тебе нужно получить CLSID функцией CLSIDFromProgID
    Затем функцией CoCreateObject создать объект с таким CLSID
    У этого объекта запросить интерфейс IDispatch. У IDispatch тебе потребуются два метода: GetIDsOfNames, чтобы по имени метода узнать его идентификатор (DISPID), и Invoke, чтобы вызвать метод (или получить/установить свойство) по известному идентификатору.
     
  6. bugmenot

    bugmenot New Member

    Публикаций:
    0
    Регистрация:
    4 дек 2006
    Сообщения:
    21
    #5 - А можно немного поподробнее. Простейший пример (только описание функций) для:
    Код (Text):
    1. objIE = CreateObject("InternetExplorer.Application")
    2. objIE.Navigate "http://mail.ru/"
     
  7. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    bugmenot
    > Простейший пример
    см. аттач
     
  8. bugmenot

    bugmenot New Member

    Публикаций:
    0
    Регистрация:
    4 дек 2006
    Сообщения:
    21
    Спасибо. Аттач интересный, я даже многое понял.
    Единственное что я так и не догнал - это как обратиться к свойству Document
    Т.е. по сути как выполнить вот эти две строчки:
    Код (Text):
    1. Set objForm = objIE.Document.forms("Auth")
    2. objForm.elements("Login").value = "Vasya"
    Остальное вроде ясно. :)
     
  9. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    спамер? get_Document
     
  10. bugmenot

    bugmenot New Member

    Публикаций:
    0
    Регистрация:
    4 дек 2006
    Сообщения:
    21
    Нет я не спамер, извините если что не так.
    Просто я далек от этого, а нужно :)...

    Мне бы поподробнее. :)
     
  11. barton

    barton New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2008
    Сообщения:
    164
    Адрес:
    Czechoslovakia
    Вообще надо хендлить DISPID_DOCUMENTCOMPLETE, получать
    browser::get_Document (возвращает IHTMLDocument)
    потом
    document::get_All возвращает IHTMLElementCollection
    далее уже энумерейтить всю "коллекцию"
    либо через какой-нибудь document::get_Forms, (IHTMLFormElement::get_Elements)