在浏览器中,可以得到IE的句柄,但不知如何得到IWebBrowser 的句柄,本人试过
Supports(IWebBrowser,IOleWindow,OleWindow);
OleWindow.GetWindow(HWND),但没法得到,请哪位高人指点!
Supports(IWebBrowser,IOleWindow,OleWindow);
OleWindow.GetWindow(HWND),但没法得到,请哪位高人指点!
解决方案 »
- 一行代码的心得
- 请问下Printer.Canvas.TextHeight(edt.text);
- 单机版应用程序改C/S结构,该怎么办
- delphi6.0 打印问题
- 关于Rave中DateText的显示问题,各位请进,在线等,急!
- 多线程管理任务问题!急救啊!!!!
- delphi做数据库遇到问题了,求救!!!!!!!!
- 请问怎么样得到在任务栏有显示的、已运行的程序的窗口的Handle? ,还有一问~~~~
- 关联表的删除问题
- 数据处理结果如何存成EXCEL格式的文件?
- 请大侠们指点迷津,请教编写防火墙的实现思路和相关知识
- 请问各位大哥!!小弟正在做一个餐饮系统,需要后厨打印功能,求求各位进来看看吧!!!!
我试过Msn Messenger一个方法,不知是否对IE有用。
至于找HWND,classname是Internet Explorer_server====================================================
function GetIEFromHWND(hWnd: HWND; var IE: IWebbrowser2): HRESULT;
var
hInst: THandle;
lRes: Cardinal;
MSG: Integer;
pDoc: IHTMLDocument2;
ObjectFromLresult: TObjectFromLresult;
begin
result:=S_OK;
if (hWnd<=0) then
exit;
hInst := LoadLibrary('Oleacc.dll');
if (hInst>0) then
try
@ObjectFromLresult := GetProcAddress(hInst, 'ObjectFromLresult');
MSG := RegisterWindowMessage('WM_HTML_GETOBJECT');
SendMessageTimeOut(hWnd, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
Result := ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, pDoc);
if Result = S_OK then
begin
(pDoc.parentWindow as IServiceprovider).QueryService(IWebbrowserApp, IWebbrowser2, IE);
end;
finally
FreeLibrary(hInst);
end;
end;
Handle就是!!谢谢各位的支持!