Alle TreeView Einträge anzeigen – AutoIt

Mit dem folgenden Skript lassen sich über AutoIt alle TreeView Einträge incl. der Childs aus einem beliebigen offenen Windowsprogramm anzeigen.

Voraussetzung ist natürlich, das AutoIt installiert ist. Über das AutoIt Window Info lässt sich der Window Titel bestimmen. Das ist das Fenster, dass das Control TreeView enthält. Ebenfalls über das Window Info Tool lässt sich die CLASSNN Eigenschaft des TreeViews Control bestimmen.
Diese zwei Werte müssen im Skript angepasst werden. Danach kann das Skript laufen.

Es wird zu jedem Item der komplette Pfad ausgegeben. Bei Bedarf kann der Separator ebenfalls angepasst werden.

#include <GuiTreeView.au3>
 Opt("MustDeclareVars", 1)

; ##############################################################################
 ;
 ; AutoIt-Script
 ; Funktion: View all TreeView items
 ;
 ; ##############################################################################

Dim $WinHandle, $TreeView, $TreeViewHandle, $FormTitle, $TreeSeparator

;/////// Change $FormTitle, $TreeView and if necessary $TreeSeparator /////////
 $FormTitle = "Change FormTitle"
 $TreeView = "[CLASSNN:Change CLASSNN for TreeView, Use AutoIt Window Info]"
 $TreeSeparator = "\"
 ;///////////// From here, do not change ///////////////////////////////////////

WinActivate($FormTitle)

$WinHandle = WinGetHandle($FormTitle)
 $TreeViewHandle = ControlGetHandle($WinHandle, '', $TreeView)

_af_GetTreeViewChilds($TreeViewHandle, _GUICtrlTreeView_GetFirstItem($TreeViewHandle))

; #FUNCTION# ====================================================================================================================
 ; Name ..........: _af_GetTreeViewChilds
 ; Description ...: Listet rekursiv alle Nodes/Items eines TreeViews auf
 ; Syntax ........: _af_GetTreeViewChilds($hTreeView, $hParent[, $sTab = ""])
 ; Parameters ....: $hTreeView           - A handle value.
 ;                  $hParent             - A handle value.
 ;                  $sTab                - [optional] A string value. Default is "".
 ; Return values .: None
 ; Author ........: André Fischer - www.af-network.de
 ; Modified ......:
 ; Remarks .......:
 ; Related .......:
 ; Link ..........:
 ; Example .......: No
 ; ===============================================================================================================================
 Func _af_GetTreeViewChilds($hTreeView, $hParent, $sTab = "")
 For $i = 1 To _GUICtrlTreeView_GetSiblingCount($hTreeView, $hParent)
 If $hParent <> 0 Then

If _GUICtrlTreeView_GetChildCount($hTreeView, $hParent) > 0 Then
 ConsoleWrite($sTab & _GUICtrlTreeView_GetText($hTreeView, $hParent) & @LF)
 _af_GetTreeViewChilds($hTreeView, _GUICtrlTreeView_GetFirstChild($hTreeView, $hParent), $sTab & _GUICtrlTreeView_GetText($hTreeView, $hParent) & $TreeSeparator)
 Else
 ConsoleWrite($sTab & _GUICtrlTreeView_GetText($hTreeView, $hParent) & @LF)
 EndIf

EndIf
 $hParent = _GUICtrlTreeView_GetNextSibling($hTreeView, $hParent)
 Next
 EndFunc   ;==>_af_GetTreeViewChilds

MsgBox(0, "", "finished")

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.