Hey that's awesome Walker, it really helped a lot! 
I guess I'm missing something here but I have no idea about it... lookie, it's your code, a bit modified, but it only adds one tree of the Start Menu folder... the folders inside Programs and Accesories and such are added in the same sub menu... without following hierarchy... got any ideas? :/
Code: Select all
  CreatePopupMenu(1)
  
  NewList dirliste.s() 
  path2$="Path to Start Menu goes here."
  Path$=Path$
  count=0 
  If ExamineDirectory(1,Path$,"*.*") 
    Repeat 
      a=NextDirectoryEntry()
      If a<>0
        If a=2 ;Folder
          If DirectoryEntryName()<>"." And DirectoryEntryName()<>".." 
            AddElement(dirliste()) 
            dirliste()=Path$+DirectoryEntryName() 
          EndIf 
        EndIf 
        If a=1 ;File
          count+1 
        EndIf  
      EndIf 
    Until a=0 
    
    x=CountList(dirliste())-1 
    For n = 0 To x
      SelectElement(dirliste(),n) 
      Path$=dirliste() 
      cnt=0
      k$=StringField(Path$,1,"\") : While k$<>"" : k$=StringField(Path$,cnt,"\") : cnt=cnt+1 : Wend
      GotIt=cnt-2
      OpenSubMenu(StringField(Path$,GotIt,"\"))
      If ExamineDirectory(2,Path$,"*.*")
        Repeat 
          a=NextDirectoryEntry() 
          If a=2 ;Folder
            If DirectoryEntryName()<>"." And DirectoryEntryName()<>".." 
              AddElement(dirliste()) 
              dirliste()=Path$+"\"+DirectoryEntryName() 
              x=CountList(dirliste())-1
            EndIf 
          EndIf 
          If a=1 ;File
            If LCase(Right(DirectoryEntryName(),3))="lnk"
              count+1 
              MenuItem(count,Left(DirectoryEntryName(),Len(DirectoryEntryName())-4))
            EndIf 
          EndIf 
        Until a=0 
        CloseSubMenu()
      Else 
      EndIf    
    Next n
    
    ExamineDirectory(3,path2$,"*.*")   
    Repeat 
      a=NextDirectoryEntry()
      If a<>0
        If a=1 ;File
          If LCase(Right(DirectoryEntryName(),3))="lnk"
            count+1 
            MenuItem(count,Left(DirectoryEntryName(),Len(DirectoryEntryName())-4))
          EndIf 
        EndIf  
      EndIf 
    Until a=0 
    
  EndIf 
  OpenWindow(1,0,0,10,10,0,"lol")
  DisplayPopupMenu(1,WindowID())