我正在尝试使用chrome插件从Internet Explorer8访问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 Spy++,您可以看到窗口继承完全不同)。
我可以访问我想要访问的" tab“的实例,但最终我需要用一个新的URL”刷新“该选项卡(我打算使用IWebBrowser2.Navigate来完成)。
我试过导入Chrome的类型库,但我也找不到任何有用的东西。因此,我很乐意使用任何我需要的东西,以便刷新我拥有句柄的选项卡。
谢谢
发布于 2011-08-25 15:31:06
如果你需要使用Chrome框架,我在这里打包了ActiveX控件:http://www.progdigy.com/?p=116
但我建议你使用Delphi Chromium Embedded,你会有更多的可能性。http://code.google.com/p/delphichromiumembedded/
https://stackoverflow.com/questions/7184228
复制相似问题