Thanks for the video. it allows to understand it better. So you have something like shell launcher.
Yes - the launcher searches for available virtual disks.
Have you seen the 4 input boxes on the left side of the launcher ?
If there is a free slot I can drag a virtual disk into it, right click the driveletter icon and voila - it gets mounted and integrated into my programs-directory.
If enough memory is available it mounts them in writeable mode and executes an autoload.cmd.
This batch creates junctions from my programs-dir to the programs in the virtual disk.
After that it merges all reg.files in an autoload-directrory into the registry.
Finally it copies desktop-icons or startmenu-shortcuts i place.
The result is I do not need any registry-expansion as I can always use hardcoded paths for any registry-stuff or shortcuts.
As I use driveletter R: for my RAMdrive I can very easily build a developement virtual machine that has the very same
layout than the PE will have when booted from CD later.
This allows creating startmenu entries by drag and drop.
It allows adding of programs like dreamweaver without writing any code at all.
I just have to add a line to my autoload-batch that says
junction R:\programs\dreamweaver dreamweaver
Later when I use the PE it doesn't matter at all wether the virtual disk that contains dreamweaver is copied to the CD or wether I load it from a mapped network-drive ...
I often hear that one uses variables for paths like %programsdrive%\programs\my-program.
Somehow I see no point in that - I don't need to use a variable for something that is well defined.
Why should I build a plugin by replacing
path-to-app = R:\programs\app
path-to-app = %programsdrive%\programs\app
and then hope that after boot of the PE this gets correctly translated into
path-to-app = R:\programs\app ???
The only variables I can't work around is %systemroot% as this maybe X:\i386, X:\minint or X:\sbin or whatever.
Anyway - I am happy with this layout I use as it is very easy to add stuff because I have a developement-regular windows-installation that is an almost exact mirror of the later PE.
If the ramdrive is a variable it is much more work to add a program in a lazy way.
If the ramdrive is set to B: my lazy way is impossible.
I really like to be lazy
By the way - Linux guys are lazy too - they alway use programs in /usr/bin - so that they can address them in a "always the same way" - it doesn't really matter wether /usr/bin is on the first,second or 23th hard-drive.
If you ask me - driveletters are a serious design-error in Windows