我正在努力自动化几个应用程序。一个取决于另一个的输出。我遇到的问题是,当我尝试访问Treeview
以获取其他信息时,计数返回 0。
如果我看得见,它显示了很多项目。如果我用 Winspector 查看它,它会报告 0 个可见项目。
我怎样才能收集这些信息?这是从多个地方动态收集的信息。我无法访问数据库(这很好,但由于某些信息是动态的,因此不可能)。
这是 Winspector 给我的输出:
Properties for window: 0x00021806
Class Name: SysTreeView32
Rectangle: 213, 180, 1038, 375
Size: 825, 195
Client Rectangle: 0, 0, 821, 191
Client Size: 821, 191
Styles: WS_CHILD,
WS_VISIBLE,
WS_CLIPSIBLINGS,
WS_CLIPCHILDREN,
WS_TABSTOP,
StylesEx: WS_EX_NOPARENTNOTIFY,
WS_EX_CLIENTEDGE,
WS_EX_LEFT,
WS_EX_LTRREADING,
WS_EX_RIGHTSCROLLBAR
ID: 0
Properties: Atom: #43288 0xFFFFFFFF (-1)
Class specific: Visible items:0,
Total items: 0
Window is Ansi
Owner EXE c:\csg\acsr\XBOI.EXE
有什么想法可以检索节点信息和项目吗?我正在使用带有发送消息的 API 调用的 VBA(访问)。
这是我用来测试项目计数的代码:
Sub testtree(mytv As Long)
Dim z As Long
Dim wClass As String, wText As String
Dim hWndTvw As Long
Dim hNode As Long
Dim varReturn As Long
Dim tvcount As Long
Dim hchild As Long
Dim j As Integer
hchild = mytv
wClass = Space(64)
j = GetClassName(hchild, wClass, 63)
wClass = Left(wClass, j)
wText = Space(256)
j = SendMessageS(hchild, WM_GETTEXT, 255, wText)
wText = Left(wText, j)
Debug.Print wText
z = SendMessage(mytv, TVM_GETCOUNT, 0&, 0&)
MsgBox z
End Sub
谢谢!