使用Win32 :: GuiTest从网格显示控件(AfxWnd42s)获取数据

时间:2011-04-06 19:44:19

标签: perl winapi gui-testing win32gui

我目前正在编写一些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 ++告诉我关于窗口组件的内容。

0 个答案:

没有答案