如何从另一个应用程序的窗口中检索文本框控件的名称属性

时间:2013-12-10 22:18:15

标签: winforms automation pinvoke

我正在编写一个程序,将工具栏覆盖到另一个应用程序窗口。我能够遍历MDI子窗口甚至通过PInvoke访问所有控件。我想弄清楚的一件事是如何获得控件的实际Name属性。

我能够使用Hawkeye查看该字段的名称,但我无法弄清楚它是如何获取控件名称的。

有一种想法是它可能会在目标应用程序中注入一些东西并运行像Control.FromHandle这样的东西,但我并不是100%肯定。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

不幸的是,控件的Name属性是.Net对象的一个​​属性,它创建的窗口不是控件窗口本身的窗口。无法使用窗口句柄 - PInvoke或其他方式 - 从进程外部获取此值。

你需要对Hawkeye的做法做一些修改。附加到进程,检查对象层次结构和/或使用CLR调试API动态注入代码。