我正在编写一个程序,将工具栏覆盖到另一个应用程序窗口。我能够遍历MDI子窗口甚至通过PInvoke访问所有控件。我想弄清楚的一件事是如何获得控件的实际Name属性。
我能够使用Hawkeye查看该字段的名称,但我无法弄清楚它是如何获取控件名称的。
有一种想法是它可能会在目标应用程序中注入一些东西并运行像Control.FromHandle这样的东西,但我并不是100%肯定。
感谢您的帮助。
答案 0 :(得分:0)
不幸的是,控件的Name属性是.Net对象的一个属性,它创建的窗口不是控件窗口本身的窗口。无法使用窗口句柄 - PInvoke或其他方式 - 从进程外部获取此值。
你需要对Hawkeye的做法做一些修改。附加到进程,检查对象层次结构和/或使用CLR调试API动态注入代码。