如果我知道另一个应用程序中一个TWebBrowser实例的句柄,该如何访问它的IHTMLDocument2接口,即Document属性?
FindControl只能得到nil.
FindControl只能得到nil.
解决方案 »
- 新手问个关于代码调试的问题
- 数据库中存取图像的问题,快把我卡死了,救命!
- ***********************高手们出手啦,需要你们一个建议**********************
- 如何制作安装程序?求助!
- ADOQuery的时间参数问题,在线等...
- 不装BDE,Ttable怎样连接dbf文件?
- 弹出一个showmodal窗体后主窗体的菜单怎么发灰?
- 数据的压缩与恢复??焦急!
- 谁知道在DELPHI中的GUID里面,两个单元格如何合并?
- interbase 高手看过来!
- 右对齐?
- 在DELPHI的TCP/IP的C/S聊天室中,在SERVER端中如何主动删除与客户端建立的SOCKET通道呢?
函数名:GetIEFromHWND
参数:hWnd,WebBrowser控件的窗口句柄
功能:通过WM_HTML_GETOBJECT取得控件的IWebbrowser2接口
************************************************************}
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;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBClient, StdCtrls, OleCtrls, SHDocVw, MSHTML;<==============type
TForm1 = class(TForm)
ClientDataSet1: TClientDataSet;
WebBrowser1: TWebBrowser;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
Doc: IHTMLDocument2;
begin
Doc := WebBrowser1.Document as IHTMLDocument2
end;end.
http://www.delphihackerspages.nl/IEGetCurrentPage.htm
http://www.delphihackerspages.nl/IEGetCurrentPage.htm上
的代码跑起来出错呀???
直接把这两个单元去掉就行了(对D6而言)