Zedna Posted November 5, 2014 Share Posted November 5, 2014 Just very simple but universal/usefull function to get all content of TreeView from external application. It's not optimized for speed and error testing is missing, it's just for very simple code ;-) #Include <String.au3> #Include <GuiTreeView.au3> ; "C:\Program Files (x86)\Resource Kit\oleview.exe" ; COM Library Objects --> ClassMoniker $sAll = _TreeView_GetAll('OLE/COM Object Viewer', '', 'SysTreeView322') FileDelete('treeview_get_all.txt') FileWrite('treeview_get_all.txt', $sAll) ;~ClipPut($sAll) Func _TreeView_GetAll($title, $text, $classNN, $expand = False, $indent = ' ', $bullet = '') ; $bullet = '- ' $sAll = '' $hWnd = ControlGetHandle($title, $text, $classNN) If $expand Then _GUICtrlTreeView_Expand($hWnd) ; Expand All $hItem = _GUICtrlTreeView_GetFirstItem($hWnd) While $hItem <> 0x00000000 $sItem = _GUICtrlTreeView_GetText($hWnd, $hItem) $level = _GUICtrlTreeView_Level($hWnd, $hItem) $sIndent = _StringRepeat($indent, $level) $sAll &= $sIndent & $bullet & $sItem & @CRLF $hItem = _GUICtrlTreeView_GetNext($hWnd, $hItem) WEnd Return $sAll EndFunc Hope it can help somebody ... MZXPTLK and mLipok 2 Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
Zedna Posted November 5, 2014 Author Share Posted November 5, 2014 Here is GUI interactive version: expandcollapse popup#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Include <String.au3> #Include <GuiTreeView.au3> $Form1 = GUICreate("TreeView Get All", 574, 422, 260, 136) $lbl_title = GUICtrlCreateLabel("Title:", 17, 15, 27, 17) $ed_title = GUICtrlCreateInput("", 49, 13, 121, 21) ; OLE/COM Object Viewer $lbl_text = GUICtrlCreateLabel("Text:", 189, 15, 27, 17) $ed_text = GUICtrlCreateInput("", 219, 13, 121, 21) $lbl_classnn = GUICtrlCreateLabel("ClassNN:", 367, 15, 47, 17) $ed_classnn = GUICtrlCreateInput("SysTreeView321", 415, 13, 121, 21) ; SysTreeView322 $btn_get_all = GUICtrlCreateButton("TreeView Get All", 232, 48, 100, 25) $ed_output = GUICtrlCreateEdit("", 16, 88, 537, 313) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $btn_get_all GUISetCursor(15,1,$Form1) $title = GUICtrlRead($ed_title) $text = GUICtrlRead($ed_text) $classnn = GUICtrlRead($ed_classnn) $sAll = _TreeView_GetAll($title, $text, $classnn, False, ' ') GUICtrlSetData($ed_output, $sAll) GUISetCursor(2,0,$Form1) EndSwitch WEnd Func _TreeView_GetAll($title, $text, $classNN, $expand = False, $indent = ' ', $bullet = '') ; $bullet = '- ' $sAll = '' $hWnd = ControlGetHandle($title, $text, $classNN) If $expand Then _GUICtrlTreeView_Expand($hWnd) ; Expand All $hItem = _GUICtrlTreeView_GetFirstItem($hWnd) While $hItem <> 0x00000000 $sItem = _GUICtrlTreeView_GetText($hWnd, $hItem) $level = _GUICtrlTreeView_Level($hWnd, $hItem) $sIndent = _StringRepeat($indent, $level) $sAll &= $sIndent & $bullet & $sItem & @CRLF $hItem = _GUICtrlTreeView_GetNext($hWnd, $hItem) WEnd Return $sAll EndFunc Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
MZXPTLK Posted March 24, 2016 Share Posted March 24, 2016 Hi Zedna, thank you for the code. Did you ever try to add a custom event to an external treeview? I am still looking for such a function. (Maybe change OnClick event for an external treeview). I tried GUISetOnEvent, but it seem that this only works with internal application. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now