我正在开发一个软件来插入另一个程序的丰富编辑中的一些文本,代码如下:
atlfe = FindWindowEx(wtlsplitterwindow, 0, "atl:0087d7a8" , null);
这只是一行:这很好用,问题在于程序号atl:0087d7a8
的每个版本都发生了变化,所以我必须使用spy ++来获取新的并在代码中更改它。
问题是,有什么方法可以从代码中获取该数字吗?
顺便说一下,我正在使用C#,VS2010。
答案 0 :(得分:1)
我建议您使用UI Automation而不是原始Windows API。您应该从UI间谍工具开始,以确定您的应用的UI层次结构,它将更有弹性来改变。
在SO上看到关于这个主题的一些文章:
答案 1 :(得分:0)
因为我搞砸了一些这样的Windows API,已经有一段时间了。我认为这可能是有价值的。
答案 2 :(得分:0)
答案 3 :(得分:0)
显然,如果子窗口没有标题,并且每次你有一个方法,它的类名不同。
您首先必须使用EnumWindows或FindWindowEx找到此应用程序的顶级窗口,后者如果您可以通过类名和/或窗口标题识别它。
拥有顶级窗口后,您可以浏览孩子以找到您要查找的子窗口。据推测,您已经知道顶级窗口和您要定位的子窗口之间的关系。无论如何,Spy ++可以告诉你这个。