如何在ActiveForm中得到包含这个ActiveForm的IE对象?(50分)

  • 主题发起人 主题发起人 Boblee
  • 开始时间 开始时间
B

Boblee

Unregistered / Unconfirmed
GUEST, unregistred user!
用什么方法可以,API行吗?
 
sw: IShellWindows;
disp:IDispatch;
ie: IWebBrowser2;
i:integer;
Begin
sw := CoShellWindows.Create;
for i := 0 to sw.count - 1 do
begin
disp := sw.item(i);
disp.QueryInterface(IWebBrowser2, ie);
if ie <> nil then
Begin
If UpperCase(ExtractFileName(IE.FullName))<>'IEXPLORE.EXE' then continue;
Ie.AddressBar:=Flag;
Ie.MenuBar:=Flag;
IE.ToolBar:=0
End;//if ie
end;//for
 
如果开发10个IE,怎么区分哪个IE是ActiveForm的?我从你的代码中没看出来。
 
我在ActiveForm中,用
hwnd := self.ParentWindow
可以得到名为:DaxParkingWindow的名柄hwnd,
但为何再用
hwnd := GetParent(hwnd)
得到hwnd就是 0 ,难道DaxParkingWindow与IE没有任何关系吗?

原先我用GetForegroundWindow,但这个API不保险,因为可能在装载ActiveForm时,用户切
换IE就会导致取得的IE就是不正确的。

急呀。。。。。项目做不下去了,
 
后退
顶部