[variables] %ProgramName%=CD Writer - Burn Cd and Dvd %ProgramFolder%=sCDWriter %ProgramExe%=x:\programs\%ProgramFolder%\scdwriter.exe %ProjectInfo%=%ProjectDir%\ProjectInfo.ini [process] echo,"Making new directories.." DirMake,"%targetdir%\Programs" DirMake,"%targetdir%\Programs\%ProgramFolder%" echo,"Extracting %ProgramName%.." ExtractAllFiles,"%ScriptFile%","Internal-files","%targetdir%\Programs\%ProgramFolder%" echo,"Adding item to xoblite menu.." If,ExistFile,"%targetdir%\Programs\XobLite\menu.rc",TxTAddLine,"%targetdir%\Programs\XobLite\menu.rc","[exec] (%ProgramName%) {%ProgramExe%}","append","3" echo,"Adding item to shortcut.inf menu.." If,NotExistFile,"%TargetDir%\i386\system32\shortcut.inf",FileCreateBlank,"%TargetDir%\i386\system32\shortcut.inf" TXTAddLine,"%TargetDir%\i386\system32\shortcut.inf","1,!PE\Programs\scdwriter\scdwriter.exe,!DE\Small CD-Writer","Append" TXTAddLine,"%TargetDir%\i386\system32\shortcut.inf","1,!PE\Programs\scdwriter\scdwriter.exe,!SM\Small CD-Writer","Append" Run,%BaseDir%\Archive\Build\ScriptLog.script,Process-logAs to be seen the target programs folder name is hardcoded.
That may conflict with other scripts using localized names.
Let's do this:
1st create a new variable %TargetProg% and fill it with the value of the localized program folder name.
[Variables] ... %TargetProg%= ... [Process] IniRead,"%ProjectInfo%","Paths","Application_Data","%TargetProg%" ...
2nd replace the hardcoded '\programs' by '\%TargetProg%'
[process] ... If,NotExistDir,"%targetdir%\Programs",DirMake,"%targetdir%\%TargetProg%" DirMake,"%targetdir%\%TargetProg%\%ProgramFolder%" ... ExtractAllFiles,"%ScriptFile%","Internal-files","%targetdir%\%TargetProg%\%ProgramFolder%" ... If,ExistFile,"%targetdir%\%TargetProg%\XobLite\menu.rc",TxTAddLine,"%targetdir%\%TargetProg%\XobLite\menu.rc","[exec] (%ProgramName%) {%ProgramExe%}","append","3" ...
In this special case there is a 'addon' to the replacement: A predefined variable:
[variables] ... %ProgramExe%=x:\programs\%ProgramFolder%\scdwriter.exe ... [process] ... If,ExistFile,"%targetdir%\%TargetProg%\XobLite\menu.rc",TxTAddLine,"%targetdir%\%TargetProg%\XobLite\menu.rc","[exec] (%ProgramName%) {[b]%ProgramExe%[/b]}","append","3" ...
Here we have to set the variable rather then to predefine (the x: better should be replaced by %SystemDrive%)
[variables] ... %ProgramExe%= ... [process] ... Set,%ProgramExe%,"#$pSystemDrive#$p:\%TargetProg%\%ProgramFolder%\scdwriter.exe" If,ExistFile,"%targetdir%\%TargetProg%\XobLite\menu.rc",TxTAddLine,"%targetdir%\%TargetProg%\XobLite\menu.rc","[exec] (%ProgramName%) {%ProgramExe%}","append","3" ...
3rd define shortcuts:
Add-Shortcut,"DE","%ProgramExe%" Add-Shortcut,"SM","%ProgramExe%"
Peter