Yeah but not all systems are listed on the foundation.SystemDefs list. Plus it doesn't contain the real path to the script. Thats one of the reasons I've made the system plugins for Galaxy Charts.
But here's something you can use: (just a real small and fast test I made in the console and copied the text from the console dump =P)
import Systems
####
####
print Systems.__dict__.keys()
['SmokeRing', 'Calufrax', 'Earth', 'Ross_128', 'TheGalaxy', 'Betelgeuse', 'Vesuvi', 'Cebalrai', 'Starbase12', 'Romulus', 'Junkyard', 'Serris', 'Ona', 'Utils', 'Riha', 'Vger', 'Obstacles', 'CJones', 'SystemJ25', 'Tathis', 'Arcturus', 'Pleides', 'Cardassia', 'Biranu', 'Vatris', 'Albirea', 'Nursery', 'Alioth', '__name__', 'Borealis', 'KavisAlpha', 'Voltair', 'Itari', 'DeepSpace9', 'Ascella', 'Prendel', 'ArenaA', 'Baqis', 'Badlands', 'Universe', 'Poseidon', 'PsiBlackhole', 'OmegaDraconis', '__doc__', 'Beol', 'Kastra', 'Comet', 'Kronos', 'Vulcan', 'Procyon', 'BeyondTheGalaxy', 'Void', 'Fluid', 'QuickBattle', 'XiEntrades', 'Belaruz', 'Yiles', 'Sol', '__builtins__', 'String', 'DeepSpace', 'Sirius_B', 'DryDock', 'Khan', 'GasGiant', 'Nepenthe', 'BriarPatch', 'Tezle', 'GammaQuadrant', 'Artrus', '__path__', 'Tevron', 'Banzai', 'Geble', 'RedGiant', 'Chambana', 'Wolf359', 'ShakedownCruise', '__file__', 'Hekaras', 'GalaxyEdge', 'Canopus', 'Savoy', 'Rainbow', 'FoundationUtils']
####
####
print Systems.__dict__['Calufrax'].__dict__.keys()
['__path__', '__doc__', 'Calufrax3', '__file__', '__name__', '__builtins__']
####
####
print Systems.__dict__['Belaruz'].__dict__.keys()
['__path__', '__doc__', 'Belaruz4', '__file__', '__name__', '__builtins__']
####
####
print Systems.__dict__['Belaruz'].__dict__['Belaruz4'].__dict__.keys()
['GetSetName', '__doc__', 'Terminate', 'App', '__name__', 'Initialize', '__file__', '__builtins__', 'LoadPlacements', 'GetSet', 'LoadBackdrops']
That way you can go looping thru each script and each of it's variables, and if they have "CreateMenus", use them.
Problem is, i think python only starts listing the scripts in the __dict__ of the parent directory when they have been initialized.
Dunno if this can really help out or not since i'm kinda in a hurry here, but at least it's something to think about.