engjcowi Posted January 28, 2011 Share Posted January 28, 2011 Hey Guys I put together a small program that used a combobox and listed all the reg files in a directory then applied the one selected. Feeling pretty chuffed with myself i decided to try and go one step further byt creating a program to do the same but listing the reg files from various folders, Listing them under their respective branches and then being able to select numerous ones to run at the same time. However i think im starring into nothing'ness and my brain needs a rest as im just frustrating myself trying to get it to work. Im using windows exe and dll files as a search for now. Can someone please assist me. Thank you in advance. its Much appreciated expandcollapse popup#include <GuiConstantsEx.au3> #include <GuiTreeView.au3> #include <GuiImageList.au3> #include <WindowsConstants.au3> #Include <File.au3> Local $hItem[6], $hRandomItem, $hTreeView, $edit, $string, $msg Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES) $harray=_FileListToArray(@WindowsDir,"*.dll") $harray2=_FileListToArray(@WindowsDir,"*.exe") GUICreate("TreeView Get Checked", 620, 300) ;$edit = GUICtrlCreateEdit("", 400, 10, 200) $ok_button = GUICtrlCreateButton("Ok", 50, 250, 97, 25) $exit_button = GUICtrlCreateButton("Exit", 150, 250, 97, 25) GUICtrlSetOnEvent(-1, "exit_buttonclick") $hTreeView = GUICtrlCreateTreeView(2, 2, 396, 200, $iStyle, $WS_EX_CLIENTEDGE) GUISetState() $generalitem = GUICtrlCreateTreeViewItem("General", $htreeview) _GUICtrlTreeView_BeginUpdate($generalitem) For $x=0 To Ubound($harray)-1 ;GUICtrlSetData($hcombo,$array[$x]) ;$hItem[$x] = GUICtrlCreateTreeViewItem(StringFormat("[%02d] New Item", $x + 1), $hTreeView) $harray[$x] = GUICtrlCreateTreeViewItem($harray[$x], $generalitem) Next $displayitem = GUICtrlCreateTreeViewItem("Display", $htreeview) _GUICtrlTreeView_BeginUpdate($displayitem) For $x=0 To Ubound($harray2)-1 ;GUICtrlSetData($hcombo,$array[$x]) ;$hItem[$x] = GUICtrlCreateTreeViewItem(StringFormat("[%02d] New Item", $x + 1), $hTreeView) $harray2[$x] = GUICtrlCreateTreeViewItem($harray2[$x], $displayitem) Next _GUICtrlTreeView_EndUpdate($hTreeView) While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Exit GUIDelete() Case $msg = $ok_button _execute() Case $msg = $exit_button exit_buttonclick() EndSelect WEnd Func _execute() $item = GUICtrlRead($hTreeView) ; Get the controlID of the current selected treeview item If $item = 0 Then MsgBox(64, "TreeView Demo", "No item currently selected") Else $text = GUICtrlRead($item, 1) ; Get the text of the treeview item If $text == "" Then MsgBox(16, "Error", "Error while retrieving infos about item") Else MsgBox(64, "TreeView Demo", "Current item selected is: " & $text) _GUICtrlTreeView_SetSelected($hTreeView, $item) EndIf EndIf EndFunc func exit_buttonclick() exit EndFunc Drunken Frat-Boy Monkey Garbage Link to comment Share on other sites More sharing options...
engjcowi Posted January 29, 2011 Author Share Posted January 29, 2011 Can anyone help at all please? Drunken Frat-Boy Monkey Garbage Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted January 30, 2011 Moderators Share Posted January 30, 2011 engjcowi, There is actually no question in your initial post, but I assume you are looking to determine which items in the Tree are checked. You will need to look at the state of each item like this: expandcollapse popup#include <GuiConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiTreeView.au3> Global $aItem[4] $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES) GUICreate("Checked", 200, 200) $hTreeView = GUICtrlCreateTreeView(10, 10, 180, 140, $iStyle, $WS_EX_CLIENTEDGE) GUISetState() _GUICtrlTreeView_BeginUpdate($hTreeView) For $i = 0 To 3 $aItem[$i] = GUICtrlCreateTreeViewItem(" Item " & $i, $hTreeView) Next _GUICtrlTreeView_EndUpdate($hTreeView) $hButton = GUICtrlCreateButton("Read", 10, 160, 80, 30) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $hButton For $i = 0 To 3 ; Get the state of the item Local $iState = _GUICtrlTreeView_GetState($hTreeView, $aItem[$i]) ; See if the "checked" flag is set If BitAnd($iState, 0x2000) Then ConsoleWrite($i & " Checked" & @CRLF) Next ConsoleWrite(@CRLF) EndSwitch WEnd Is that what you wanted? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
engjcowi Posted February 13, 2011 Author Share Posted February 13, 2011 Hi Melba23 Thats what im looking for thank you. I didnt even realise i hadnt posted a question. in my head i thought i did lol. Im writing it so that the user can put reg files into the respective folders and the treeview will list them and when the user selects them and presses go then it will run the reg files to integrate into the registry. I do have 1 other minor question if i could take up a little more of yor time please. I would like to set up 3 main folders, XP, Vista and 7. In my other incarnation of a reg tweaker i had a set of folders inside each of the 3 OS folders stating the type of tweaks, desktop, appearence etc... and i set these manually. Is there a way to have the treeview have XP then branch to the next folder then list whats in that directory with the directory being unknowm or dynamic so the user can arrange the tweaks how he or she wants? Thanks jamie p.s im on the way with this now and ill update with code soon Drunken Frat-Boy Monkey Garbage Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 13, 2011 Moderators Share Posted February 13, 2011 engjcowi, Set up an ini file with this structure: [Folders] XP=Folder_Path Vista=Folder_Path Win7=Folder_Path Then use some code along these lines to load the TreeView with the contents of the folders: #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiTreeView.au3> #include <File.au3> ; Read folders $aFolders = IniReadSection("Folders.ini", "Folders") $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES) $hGUI = GUICreate("Test", 400, 500) $hTreeView = GUICtrlCreateTreeView(10, 10, 380, 480, $iStyle, $WS_EX_CLIENTEDGE) ; For each folder For $i = 1 To $aFolders[0][0] ; Create a parent item $hParent = GUICtrlCreateTreeViewItem($aFolders[$i][0], $hTreeView) ; Read all files in that folder - adjust the mask as required $FileList = _FileListToArray($aFolders[$i][1], "*.*", 1) ; Add files to treeview For $j = 1 To $FileList[0] GUICtrlCreateTreeViewItem($FileList[$j], $hParent) Next Next GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd I leave it to you to add a section where the user can change the folders for each OS. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
engjcowi Posted February 13, 2011 Author Share Posted February 13, 2011 Brilliant thank you very much for all your help Drunken Frat-Boy Monkey Garbage Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 13, 2011 Moderators Share Posted February 13, 2011 engjcowi, My pleasure. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area 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