私はいくつかのアプリケーションを自動化するために取り組んでいます。1つは別の出力に依存します。私が直面している問題は、にアクセスし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
ノード情報とアイテムを取得する方法はありますか? sendmessage を使用した 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
ありがとう!