easyModel.Script

This description is mainly thought for .script developers. Normal users should not worry if  they don't understand everything.


How it works


Install directory
%BaseDir%\Basic\Build

Tasks done by easyModel.script

It calls easyModel.exe in Tree Modus. As a result:
In the Target Directory there is a sub directory '$ModelRAM'.
$ModelRAM is extended to a structure of localized 'Documents and Settings' whenever it is needed by adding a shortcut or copying something here.

It adds an entry to ISO-PreProcess.script to exec [Build-Model] inside buildModel.script:
Compress the $ModelRAM folder into a self extracting .exe inside the target.
Make a registry RunOnceEx  entry to extract this file into ram disk.
Delete the $ModelRAM folder.

Tasks done by other scripts calling buildModel.script

Add shortcuts:
Run,%BuildModelScript%,Add-Shortcut,<type>,<exe>[,<description>[,<other parameters>]]
<type> see below at 'short symbol'

Copy file or directory:
Run,%BuildModelScript%,Copy-File,"<source symbol >"[,"<target symbol>"]
Windows has a restriction of 255 characters for the maximum path length. If during a recursive copy this length is crossed, the corresponding files are not copied and at the end of the copy task an editor window pops up, telling the user about this issue.
Preset Application Data sample:
Run,%BuildModelScript%,Copy-File,"@Application_Data\Microsoft\MSN Messenger\*!"
copies the complete MSN Messenger application data with all subdirectories.

Add shortcuts sample:
Run,%BuildModelScript%,Add-Shortcut,"AC","#$pSystemDrive#$p\i386\system32\notepad.exe","","-SS:SW_SHOWMAXIMIZED#$s#$q-SF:#$pSystemRoot#$p\system32\shell32.dll#$q#$s-SI:1"
adds a shortcut to the 'accessories' menu which will start notepad maximized. The shortcut will use icon #1 of shell32.dll
As to be seen, the fourth argument contains several switches separated by '#$s'. This is done because the WinBuilder engine arguments count is restricted to 4.

Syntax of buildModel.exe

Docu Modus:
/MD /L:<DLL> /O:<output file> /S:<start index> /E:<end index>
Tree Modus:
/MR [/MP] /L:<DLL> /C:<control file> /T:<target folder>
Shortcut Modus:
/MC /C:<control file> /ST:<short symbol> /SE:<shortcut exe> [/SL:<shortcut link name>] [/SD:<shortcut tooltip>] [/SP:<shortcut parameters>] [/SS:{SW_HIDE | SW_MAXIMIZE | SW_MINIMIZE | SW_RESTORE | SW_SHOW | SW_SHOWDEFAULT | SW_SHOWMAXIMIZED | SW_SHOWMINIMIZED | SW_SHOWMINNOACTIVE | SW_SHOWNA | SW_SHOWNOACTIVATE | SW_SHOWNORMAL}] [/SF:<icon file>] [/SI:<icon index>] [/SW:<work directory>]
Copy Modus:
/MO [/R:{0|1}] /C:<control file> /F:<source symbol> [/T:<target symbol>]

DLL:             full path to shell32.dll with required ressource strings
output file:     full path to file to write to. If the file exists, it is truncated.
start index:     this is the first index for the string ressources listing
end index:       this is the last index for the string ressources listing
control file:    full path to the file to write the localized paths and strings to. Usually %ProjectInfo%
target folder:   container of the image. Usually %TargetDir%
short symbol:
DE > desktop
QL > quick launch
ST > send to
SR > start menu
SM > start menu\programs
AU > start menu\programs\autostart
AD > start menu\programs\administrative tools
AC > start menu\programs\accessories
SY > start menu\programs\accessories\system tools
PG > programs (/MO only)
shortcut exe:    <basic symbol>\<file name>
shortcut display:{<text to display> | <$>}
$:               text to display will be taken from the *.MMC file      
work directory:  <basic symbol>
icon file:       <basic symbol>\<file name>
source symbol:   <basic symbol>\<file symbol>
target symbol:   <basic symbol>
basic symbol:    <item>[\<item>[\<item>...]]
item:            {<folder> | <variable> | @<short symbol> | @<index> | @<key> | @<skey>}
folder:          real name of folder
variable:        {%SystemDrive% | %SystemRoot% | %ProgramFiles%}
index:           ressource index for <DLL>
                 Before using this, try the Docu Modus with -S:60 -E:35000
key:             key inside <control file> section "Paths"
skey:            key inside <control file> section "Strings"
file symbol:     {<file name> | <pattern>[!]}
pattern:         pattern (with wildcards '*' and '?') for files to process
!:               all files in the folder and sub folders matching the pattern (recursive)

Debug help

In easyModel.script you have an option to show the self extraction log of $ModelRam. exe during boot time.
There is a log file %BaseDir%\Temp\easyModel.log

 2006-NOV-18, psc