Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WebBrowser чужого приложения [D7, WinXP]


Ertong ©   (2004-12-29 14:45:00) 

Как можно получить интерфейс чужого WebBrowser, для управления им (например, загрузить страницу, заполнить форму).


Dolt   (2004-12-31 09:10:00) [1]

1) Получаем хэндл Internet Explorer_Server.
2) GetIEFromHWnd(WndChild, IE);

function GetIEFromHWND(WHandle: HWND; var IE: IWebbrowser2): HRESULT;
var
hInst: HWND;
lRes: Cardinal;
MSG: Integer;
pDoc: IHTMLDocument2;
ObjectFromLresult: TObjectFromLresult;
begin
hInst := LoadLibrary('Oleacc.dll');
@ObjectFromLresult := GetProcAddress(hInst, 'ObjectFromLresult');
if @ObjectFromLresult <> nil then begin
  try
    MSG := RegisterWindowMessage('WM_HTML_GETOBJECT');
    SendMessageTimeOut(WHandle, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
    Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, pDoc);
    if Result = S_OK then
      (pDoc.parentWindow as IServiceprovider).QueryService(IWebbrowserApp, IWebbrowser2, IE);
  finally
    FreeLibrary(hInst);
  end;
end;
end;

ЗЫ. Функцию писал не я - нашел на просторах этого же сайта


Наверх

Титульная страница Поиск, карта сайта Написать письмо