首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

调用sendmessage给IE窗体 classname'#32770' windowname'选择要上传的档案' 的edit1传送字串解决方法

2012-02-21 
调用sendmessage给IE窗体 classname#32770 windowname选择要上传的档案 的edit1传送字串小弟弄了一个

调用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下测试成功:

Delphi(Pascal) code
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; 

热点排行