如何获得IE中的输入框的句柄?(200分)

  • 主题发起人 主题发起人 Jerray
  • 开始时间 开始时间
J

Jerray

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把我的窗体上的EDIT中的内容用鼠标拖到IE中的输入框中,
请问那位大虾能帮我实现,最好有例子。谢谢!
 
continue.....
 
IE的输入网址的EDIT的句柄很好得到。
如果是网页中的EDIT,是不能用普通方法得到的。
IE自己有一套管理窗口的系统,没有注册到Windows.
 
<<用鼠标拖到IE中的输入框
怎么拖法?
GetFocus?
 
是不是想象Unix中鼠标一选,到IE中中键一点就拷来了?
 
to wangyuguo :That's it!
 
原来Mr. Wanng 只结束一个
 
应该从IHTMLDocument中的EmbededObject上着手想办法,可以去MSDN中查找一下相关的知识

如果想自动给某些输入框赋值后发出(Submit),可以直接通过Navigate把参数带上发送出去
例如, html的form中有两个输入框, username 和 password, 你可以将Delphi Form中在两
个TEdit(edUserName,edPassword)中的值通过参数为:
'http://www.someweb.com/someasp.asp?username=' + edUserName.Text
+ '&password=' + edPassword.Text;
发送出去
 
对了,还可以通过 IHTMLDocument.Forms得到FormCollection,然后通过Form里面的
ElementCollection得到相应的EmbededElement赋值过去
 
这个问题提得够HIGH,,
 
附加功能 将问题提前
 
Jerray:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
试一试我的代码? 我试过,可以的。别忘给分哦:)
function EnumChildWindowsProc(hwnd: Integer; lparam: Longint): Boolean; stdcall;
var
buffer: array[0..255] of char;
begin
Result := True;
GetClassName(hwnd,buffer,256);
if StrPas(Buffer)='Edit' then
begin
PInteger(lparam)^ := hwnd;
Result:=False;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
hwnd: Integer;
buffer: array[0..255] of char;
begin
hwnd := FindWindow('CabinetWClass',nil);
if hwnd<>0 then
begin
EnumChildWindows(hwnd,@EnumChildWindowsProc,Integer(@hwnd));
StrPCopy(buffer,Edit1.Text);
SendMessage(hwnd,WM_SETTEXT,0,Integer(@buffer[0]));
end;
end;
 
请结束或纪续
 
多人接受答案了。
 
后退
顶部