Jump to content

Question about dynamically built menus


thepip3r
 Share

Recommended Posts

So I wrote this function that loops through a starting directory and creates a menu->submenu structure mirroing the directory->subdirectory structure of the starting directory I pass to it. My problem is that I'm not sure how to assign the dynamically generated buttons to different variables so that I can check the status of those variables to perform action on... If anyone can offer some insight, i'd appreciate it... btw, i'm new to autoit so if there's something obvious i'm missing, sorry for the noob question.

Func _DirMenuGen($fp,$menu)
    Dim $arrFile,$newMenu,$val
    $search     = FileFindFirstFile($fp & "\*.*")  

    If $search = -1 Then GUICtrlCreateMenuItem("<Parsing Error>",$menuTempParent)
    While 1
        $file = FileFindNextFile($search) 
        If @error Then ExitLoop
        
        $fileAttrib = FileGetAttrib($fp & "\" & $file)
        If @error Then 
            GUICtrlCreateMenuItem("<Parsing Error>",$menuTempParent)
            ExitLoop
        Else
            If StringInStr($fileAttrib, "D") Then
                $newMenu = GUICtrlCreateMenu($file,$menu)
                _DirMenuGen($fp & "\" & $file,$newMenu)
            Else
                If $file <> "desktop.ini" Then
                    If StringRight($file,4) = ".lnk" Or StringRight($file,4) = ".url" Then
                        GUICtrlCreateMenuItem(StringTrimRight($file,4),$menu);These should be set to variables but I don't know how... =/
                    Else
                        GUICtrlCreateMenuItem($file,$menu);Same as above.
                    EndIf
                EndIf
            EndIf
        EndIf
    WEnd

    FileClose($search)
EndFunc

My Additions:- RunAs AdminDeviant Fun:- Variable Sound Volume

Link to comment
Share on other sites

Hi,

Take a look at my functions GetFolderToMenu.

 

Spoiler

Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1

AutoIt_Rus_Community.png AutoIt Russian Community

My Work...

Spoiler

AutoIt_Icon_small.pngProjects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize Program

AutoIt_Icon_small.pngUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF
 
AutoIt_Icon_small.pngExamples: 
ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo

Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating AutoIt_Rating.gif)

* === My topics === *

==================================================
My_Userbar.gif
==================================================

 

 

 

AutoIt is simple, subtle, elegant. © AutoIt Team

Link to comment
Share on other sites

Thank you for the response MsCreatoR but when I try to run "GetFolderToMenu_Example.au3" or "Menu_With_Icons_Incl.au3" -- I get an error: "Cannot redeclare a constant" referenced on line 9. I searched both pages and "Global Const $SRCCOPY = 0x00CC0020" is only declared once so I don't understand the error but meh, I don't see what your huge script is doing anyways. Any insight?

Also... the function is written very specifically for the Docs and Settings\All Users\Start Menu directory and works great. The menu builds jsut fine. My problem is that for the rest of my buttons on my gui, i assign them variables and then use a while loop to check the status of GUIGetMsg() to check to see if that variable is = to that of my buttons and if so, perform action (like all of examples in the online documentation). Back to my problem, with my dynamic generation, I just don't see how I can assign variables to those buttons.

Can I grab the values of those buttons after the fact or something or do I need to add something to my function in order to make this work?

Edited by thepip3r

My Additions:- RunAs AdminDeviant Fun:- Variable Sound Volume

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...