关于Windows的Application和IE的协调动作(300分)

  • 主题发起人 主题发起人 takou
  • 开始时间 开始时间
T

takou

Unregistered / Unconfirmed
GUEST, unregistred user!
本人碰到一个问题,向大家请教:
就是,可不可以从一般的Windows应用程序, 对已经存在的IE窗口
向指定的textbox里面设值。要求IE窗口不能刷新。

如果用一般的GET方法的话,IE窗口要被刷新,且以前的值会丢掉
 
以下程序调试成功,IE中打开Google,将搜索框中填上 'delphibbs.com'

uses
MSHTML, SHDocVw;

procedure TForm1.Button1Click(Sender: TObject);
var
Shell: TShellWindows;
i: Integer;
begin
Shell:=TShellWindows.Create(Nil);
try
for i:=0 to Shell.Count-1 do //遍历每一个Windows的IE窗口
begin
try
with (Shell.Item(i) as IWebBrowser2).Document as IHTMLDocument2 do
begin //不是IE窗口,将发生异常,否则进入下面的程序处理
if SameText(title,'Google') then //这里判断标题栏以选择具体的IE窗口
begin
parentWindow.execScript('document.f.q.value=''delphibbs.com'';','javascript'); //通过执行js的方法设置文本框的值,也可以遍历全部IHTMLDocument取得正确的值再给它赋值
//parentWindow.execScript('document.f.submit();','javascript'); //执行搜索
Exit;
end;
end;
except
end;
end;
finally
Shell.Free;
end;
end;
 
pihome:
谢谢。很好,有线索了。
还有个问题parentWindow指的是那个窗口?
怎么个设值?
 
parentWindow: IHTMLWindow2接口
 
后退
顶部