这个问题了N次了,怎么都没人帮忙回答,是不是CSDN没高手?

vickly 2005-03-24 05:39:19
我可以功能的取得应用程序的窗口句柄,在我的程序里也要求取得其它程序的EDIT控件的句柄,并自动填写。
   希望各位能帮帮我!另外,那个程序里有两个 Edit(类似QQ的登陆对话框)两个Edit用什么区别呢?我用spy++看,类都是Edit,标题为空!

怎么区分两个EDIT的句柄呢?
...全文
330 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
zobo 2005-03-30
  • 打赏
  • 举报
回复
//已知Edit的Parent的句柄(ChildHandle3),获得第一个Edit的句柄
EditHandle1 := FindWindowEx(ChildHandle3,0,'Edit',nil);
SendMessage(EditHandle1,WM_SETTEXT,0, Integer(Str1));
//获得第二个Edit的句柄
EditHandle2 := GetWindow(EditHandle1,GW_HWNDNEXT);
SendMessage(EditHandle2,WM_SETTEXT,0, Integer(Str2));


同意楼上呢~~
dext 2005-03-25
  • 打赏
  • 举报
回复
是不是CSDN没高手?


==============================


不错
vickly 2005-03-25
  • 打赏
  • 举报
回复
Point(10, 10))太难找了~~~~怎么找有简单的方法吗?

X,Y是相对于窗体还是相对于显示器?
d0347 2005-03-25
  • 打赏
  • 举报
回复
如果出两个edit 的 位置,再用 FindWindowFromPoint获取句柄是可以的
navyfish 2005-03-25
  • 打赏
  • 举报
回复
//已知Edit的Parent的句柄(ChildHandle3),获得第一个Edit的句柄
EditHandle1 := FindWindowEx(ChildHandle3,0,'Edit',nil);
SendMessage(EditHandle1,WM_SETTEXT,0, Integer(Str1));
//获得第二个Edit的句柄
EditHandle2 := GetWindow(EditHandle1,GW_HWNDNEXT);
SendMessage(EditHandle2,WM_SETTEXT,0, Integer(Str2));
navyfish 2005-03-25
  • 打赏
  • 举报
回复
//已知Edit的Parent的句柄(ChildHandle3),获得第一个Edit的句柄
EditHandle1 := FindWindowEx(ChildHandle3,0,'Edit',nil);
SendMessage(EditHandle1,WM_SETTEXT,0, Integer(Str1));
//获得第二个Edit的句柄
EditHandle2 := GetWindow(EditHandle1,GW_HWNDNEXT);
SendMessage(EditHandle2,WM_SETTEXT,0, Integer(Str2));
jinjazz 2005-03-25
  • 打赏
  • 举报
回复
高手都忙着赚钱,哪有时间来这里蹲着
xzhifei 2005-03-25
  • 打赏
  • 举报
回复
是的,这个XY坐标只要是在该控件范围内都有效
jianlei2002 2005-03-25
  • 打赏
  • 举报
回复
up
xzhifei 2005-03-25
  • 打赏
  • 举报
回复
是的
vickly 2005-03-25
  • 打赏
  • 举报
回复
h:=ChildWindowFromPointEx(hParent, Point(10, 10));//根据大约位置查找

Point(10, 10)位置是不是指控件的x,y的位置?
xzhifei 2005-03-25
  • 打赏
  • 举报
回复
方法一:
hParent := FindWindow(nil, '窗口的标题');
h:=FindWindowEx(hParent ,0,'Edit',nil);//第一个Edit
h:=FindWindowEx(hParent ,h,'Edit',nil);//第二个Edit

方法二:
hParent := FindWindow(nil, '窗口的标题');
h:=ChildWindowFromPointEx(hParent, Point(10, 10));//根据大约位置查找
Blakhawk 2005-03-25
  • 打赏
  • 举报
回复
up
楚人无衣 2005-03-25
  • 打赏
  • 举报
回复
FindWindowEx的第二个参数用上一次找到的Edit的Handle再试
vickly 2005-03-25
  • 打赏
  • 举报
回复
for i := 0 to form.controlCount -1 do
begin
showmessage(controns[i].name);//显示控件的名称
end;

form是窗体的name,而我取出来的只是HWND1~~~~是不是应该写成~~~HWND1.controlCount???
vickly 2005-03-25
  • 打赏
  • 举报
回复
现在是,我可以找到其中的一个EDIT~~~~~而下一个EDIT我要怎么找????????/
gxgyj 2005-03-25
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3683/3683482.xml?temp=.2261774
楚人无衣 2005-03-25
  • 打赏
  • 举报
回复
reallike说的对,这里从来都没有高手!
以前写过,现在也忘了,你搜一下FindWindow及FindWindowEx的使用方法,用序号标识你找到的Edit句柄,试着往里面写些东西以确定哪个时从而记录下它的序号,试一下!
vickly 2005-03-25
  • 打赏
  • 举报
回复
ChildWindowFromPointEx(hParent, Point(10, 10));
Point(10, 10))太难找了~~~~怎么找有简单的方法吗?

X,Y是相对于窗体还是相对于显示器?
才子鸣 2005-03-25
  • 打赏
  • 举报
回复
回复人: aiirii(ari-求职广州中) ( ) 信誉:403 2005-3-24 19:58:11 得分: 0



是不是CSDN没高手?


==============================


不错
---------------------------------------
小心被杀~~~~~
加载更多回复(21)

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧