0
我試圖通過Chrome插件從Internet Explorer 8訪問IWebBrowser2對象。我可以在chrome插件沒有安裝的情況下訪問它,但由於類名等不同,它不起作用。用於Internet Explorer的IWebBrowser2和Chrome插件
沒有鉻插件,我可以使用:
function GetIEFromHWND(WHandle: HWND; var IE: IWebbrowser2): HRESULT;
var
hInst: HWND;
lRes: Cardinal;
MSG: Integer;
pDoc: IHTMLDocument2;
ObjectFromLresult: TObjectFromLresult;
begin
Result := 0;
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;
這不起作用(我假設),因爲沒有任何的IHTMLDocument2接口(使用MS間諜++中,你可以看到窗口heirarachy是完全不同的)。
我可以訪問我之後的「Tab」實例,但最終我需要用新URL(我將使用IWebBrowser2.Navigate來完成)「刷新」該選項卡。
我已經嘗試導入Chrome的類型庫,但是我找不到任何幫助的任何內容。所以我很樂意利用我需要的任何東西,以刷新我有辦法處理的選項卡。
感謝
當然,問題是關於IE瀏覽器託管的瀏覽器,而不是託管在Delphi應用程序中。 –
謝謝,但大衛是正確的。我需要在IE中使用Chrome,而不是在Delphi應用程序/表單中。我查看了嵌入式版本,看它是否有任何代碼可能有幫助,但可惜它沒有。 – Jason
我道歉,我讀得太快了 –