首页 新闻 会员 周边

怎样捕获Window窗体控件(C#)

0
悬赏园豆:10 [已解决问题] 解决于 2012-03-21 00:36

各位大虾!请指点呀,提点思路也可以,怎样能捕获到windows窗体控件,最好是用c#实现地。

heavi的主页 heavi | 初学一级 | 园豆:195
提问于:2012-03-17 07:53
< >
分享
最佳答案
1

你指的是要获取窗体句柄是吧,在如果两个窗体是在同一个进程中,则通过打开窗体后,存储全局句柄变量,,在另一个窗体中,通过这个句柄变量初始化即可。

如果是在非同一进程中,比如两个exe,则需要windows api的辅助,通过窗体的标题、类名可以获取当前运行的窗体。可以通过winodow消息的形式,控制

收获园豆:10
邢少 | 专家六级 |园豆:10926 | 2012-03-19 09:09

通过api好像只能通过sendMessage来更改控件的信息,有很多工具都可以捕获控件,然后显示窗体信息。我知道可以通过Control.Fromhandle来通过句柄获取窗体,但好像有不同进程的问题

heavi | 园豆:195 (初学一级) | 2012-03-19 23:23

@博客_wang: 

对不同进程之间的通信,需要借助windows的api 就是通过sendmessage来向目标发送消息,但是只有对方有接收消息的扩展代码时,才可以实现真正意义上的通信。Control.Fromhandle是一个进程内用的。

邢少 | 园豆:10926 (专家六级) | 2012-03-20 09:04
其他回答(3)
0

      foreach (var item in this.Controls)
            {
                if (item is TextBox) {
                    ((TextBox)item).Text = "nihao";
                }
                else if (item is Button) {
                    ((Button)item).Text = "xiexie";
                }
            }

這樣查找。this是這個窗體。

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-17 08:20

我的意思是实现自动化时,捕获窗体中的控件,也就相当于在一个程序里边获取另一个程序的窗体控件,并对控件进行操作。不知道我说明白了没

支持(0) 反对(0) heavi | 园豆:195 (初学一级) | 2012-03-17 21:22

@博客_wang: 

捕获另一个程序的窗体控件?

支持(0) 反对(0) sanglei | 园豆:143 (初学一级) | 2012-03-17 22:18
0

楼上的查找控件的方法没有考虑控件嵌套的问题。至于楼主说的,我不是很理解,是查找空间,还是捕获控件的事件?

小小刀 | 园豆:1991 (小虾三级) | 2012-03-17 10:12

像我给楼上描述的那样,应该就是查找空间。

支持(0) 反对(0) heavi | 园豆:195 (初学一级) | 2012-03-17 21:23
1

如果想要找另外程序的窗体,应该要调用api吧

莲藕 | 园豆:205 (菜鸟二级) | 2012-03-17 23:47

你能给我提供下思路吗?万分感谢

支持(0) 反对(0) heavi | 园豆:195 (初学一级) | 2012-03-18 08:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册