我目前正在编写一些perl脚本来测试我们的GUI应用程序。我使用perl的Win32 :: GuiTest作为基础,它在很大程度上非常实用。但是,我现在卡住了尝试从网格控件中获取数据(不确定小部件的实际名称是什么,因为这应该是黑盒测试)。使用WinSpy ++,我可以看到它的类是“AfxWnd42s”,无论这意味着什么。我可以使用以下代码获取窗口句柄:
#
# check that listed ports match the spec for this model
#
my @portgrids = FindWindowLike($win,undef,"AfxWnd42s");
if(not @portgrids){ die "can't find port grid"; }
for(@portgrids){
my $styles = GetWindowLong($_,Win32::GuiTest::GWL_STYLE());
my $text = WMGetText($_);
$wintext = GetWindowText($_);
printf("static w=%x, s=$wintext, style=%x text=<<$text>>\n",$_,$styles);
}
即使网格控件中有数据,text和wintext都不包含任何值。我已经为GetWindowLong尝试了许多不同的选项,但似乎没有任何关于网格内容的回复。此外,我正在扫描的窗户没有孩子。我被卡住了。
不幸的是,我无法访问代码或开发环境来构建应用程序。我只能通过WinSpy ++告诉我关于窗口组件的内容。