调用sendmessage给IE窗体 classname'#32770' windowname'选择要上传的档案' 的edit1传送字串
小弟弄了一个下午都搞不懂如何给上图绿色箭头的edit1传送字串
希望csdn的大哥大姐能够指点一下小弟谢谢
[解决办法]
var
buf:array[0..255] of char;
begin
sendmessage(hwnd,WM_GETTEXT,sizeof(buf),integer(@buf));
end;
别人的例子,给你看下,你把句柄传进去就行了
[解决办法]
sendmessage(hwnd,WM_GETTEXT,sizeof(buf),integer(@buf));、
这句明显不行嘛。
sendmessage(hwnd,WM_SetTEXT,sizeof(buf),integer(@buf));、
[解决办法]
lz 到底是从edit1中获得字符,还是设置edit中的字符。
取得:
sendmessage(hwnd,WM_GETTEXT,sizeof(buf),integer(@buf));、
设置:
sendmessage(hwnd,WM_SetTEXT,sizeof(buf),integer(@buf));、
设置的还有种方法:模拟按键
[解决办法]
我用SPY看了一下IE的弹出窗口,发现EDIT前面有两全父窗口,类名分别为:
ComboBoxEx32及ComboBox.我在win7+D2010下测试成功:
procedure TForm1.Button1Click(Sender: TObject);var hd,hd1,hd2,hd3:thandle; s:pchar;begin hd:=FindWindow(nil,'选择要加载的文件'); if (hd=0) then begin ShowMessage('窗口未找到!' ); exit; end; hd1:=FindWindowEx(hd,0,'ComboBoxEx32',0); if (hd1=0) then begin ShowMessage('ComboBoxEx32未找到!' ); exit; end; hd2:=FindWindowEx(hd1,0,'ComboBox',''); if (hd2=0) then begin ShowMessage('ComboBox未找到!' ); exit; end; hd3:=FindWindowEx(hd2,0,'Edit',''); if (hd3=0) then begin ShowMessage('Edit未找到!' ); exit; end; s:='hahaha'; SendMessage(hd3,WM_SETTEXT,0,integer(s));end;