读书人

WebBrowser中(内核为IE7),向网页中填写

发布时间: 2012-02-13 17:20:26 作者: rapoo

WebBrowser中(内核为IE7),向网页中填写内容时的问题
问题:用同一种方法,向非file类似的页面元素填写内容是可以的,但是向file类型的文件框中填写内容时就没效果.请问是为什么?(IE6中没问题,就只出在IE7中)
procedure TfrmTest.Button2Click(Sender: TObject);
var
CurrentFile:string;
BrowserHwnd:Integer;
HtmlDoc: IHTMLDocument2;
o: OleVariant;
i: Integer;
begin
HtmlDoc := IE.Document as IHTMLDocument2;
if not VarIsClear(HtmlDoc) then begin
//以下向年龄框中填写24,成功
o := Htmldoc.all.item( '年龄 ',0); //captchaRequest
CurrentFile := '24 ';
for i:=1 to Length(CurrentFile) do begin
o.focus;
BrowserHwnd := GetWindow(IE.Handle,GW_CHILD);
SendMessage(GetWindow(BrowserHwnd,GW_CHILD),WM_CHAR,ord(CurrentFile[i]),$00200001);
end;
//以下向网页中Input类型的File框中填写文件名,失败
o := Htmldoc.all.item( 'file ',0);
CurrentFile := 'd:\12323.txt ';
for i:=1 to Length(CurrentFile) do begin
o.focus;
BrowserHwnd := GetWindow(IE.Handle,GW_CHILD);
SendMessage(GetWindow(BrowserHwnd,GW_CHILD),WM_CHAR,ord(CurrentFile[i]),$00200001);
end;
end;
end;

[解决办法]
用SendInput吧
IE7的网页是在Tab下面,不是在主窗口
[解决办法]
IE7的安全性提高了,不允许直接向file类型的文件框中填写内容

读书人网 >.NET

热点推荐