各位大虾!请指点呀,提点思路也可以,怎样能捕获到windows窗体控件,最好是用c#实现地。
你指的是要获取窗体句柄是吧,在如果两个窗体是在同一个进程中,则通过打开窗体后,存储全局句柄变量,,在另一个窗体中,通过这个句柄变量初始化即可。
如果是在非同一进程中,比如两个exe,则需要windows api的辅助,通过窗体的标题、类名可以获取当前运行的窗体。可以通过winodow消息的形式,控制
通过api好像只能通过sendMessage来更改控件的信息,有很多工具都可以捕获控件,然后显示窗体信息。我知道可以通过Control.Fromhandle来通过句柄获取窗体,但好像有不同进程的问题
@博客_wang:
对不同进程之间的通信,需要借助windows的api 就是通过sendmessage来向目标发送消息,但是只有对方有接收消息的扩展代码时,才可以实现真正意义上的通信。Control.Fromhandle是一个进程内用的。
foreach (var item in this.Controls)
{
if (item is TextBox) {
((TextBox)item).Text = "nihao";
}
else if (item is Button) {
((Button)item).Text = "xiexie";
}
}
這樣查找。this是這個窗體。
我的意思是实现自动化时,捕获窗体中的控件,也就相当于在一个程序里边获取另一个程序的窗体控件,并对控件进行操作。不知道我说明白了没
@博客_wang:
捕获另一个程序的窗体控件?
楼上的查找控件的方法没有考虑控件嵌套的问题。至于楼主说的,我不是很理解,是查找空间,还是捕获控件的事件?
像我给楼上描述的那样,应该就是查找空间。
如果想要找另外程序的窗体,应该要调用api吧
你能给我提供下思路吗?万分感谢