对其他程序中的文本框赋值 - 怎样分辨多个文本框之一

TryToday 2010-07-05 05:18:01
需要对某程序的一些文本框赋值,比如姓名、性别、身份证、籍贯等等。

用 FindWindow 和 FindWindowEx 可以查找到一些文本框(或panel组件),但是问题是FindWindowEx只能按照类名、标题查找,但是如果有多个相同类名、没有标题的组件,我怎么对其中一个赋值呢。

我感觉应该有遍历所有子控件的方法,然后根据遍历到的顺序来确定文本框,然后赋值。
...全文
70 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-07-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 trytoday 的回复:]
顺序变化?天啊,不是按照z Order吗,如果变化我怎么知道第几个是姓名文本框,第几个是学历呢。
[/Quote]

顺序是固定的。编译好的程序order是固定的。所以这种用findwindow,findwindowex方法处理别的程序的,都是针对版本,针对软件的,想随便获取任何软件的自然不行。
但软件固定,版本固定。文本框的order也就固定了。你可以按tab键看是第几个。
TryToday 2010-07-06
  • 打赏
  • 举报
回复
顺序变化?天啊,不是按照z Order吗,如果变化我怎么知道第几个是姓名文本框,第几个是学历呢。
doubleu2005 2010-07-05
  • 打赏
  • 举报
回复
如果控件上有默认值的话直接用FindWindowEx来确定,如果没有就只能遍历了,但目标程序关闭后,要重新遍历,因为顺序可能会有变化
TryToday 2010-07-05
  • 打赏
  • 举报
回复
1楼:【其他程序】不是我写的,不能得到name。正在试遍历...
wuyq11 2010-07-05
  • 打赏
  • 举报
回复
遍历FindWindowEx继续查找句柄
Neil198 2010-07-05
  • 打赏
  • 举报
回复
FindWindowEx 第二个参数是从此控件开始往下查找,这个参数你填写当前句柄就可以查找下一个了
兔子-顾问 2010-07-05
  • 打赏
  • 举报
回复
继续调用FindWindowEx就能获取下一个。
大光呢 2010-07-05
  • 打赏
  • 举报
回复
foreach(control c in controls)
{
if (c .tag.tostring()=="你的判断")//利用控件的tag属性作为判断的依据。
{}
else{}
}


其实你 这个需求,可以根据控件的name属性直接定位控件了。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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