This has become the PortableApps.com Launcher.
Chris's PortableApps.com Launcher is your PAL in making portable apps It is configured with an INI file which goes in App\ChrisLauncher\AppNamePortable.ini, and uses a splash screen in App\ChrisLauncher\AppNamePortable.jpg.
Download Chris's PortableApps.com Launcher Test 5 [339KB download / 314KB installed]
Using Chris's PortableApps.com Launcher:
Install it somewhere, and then copy PortableApps.comLauncher.exe into your portable app's directory, named e.g. AppNamePortable.exe. Configure it with an AppNamePortable.ini file in your portable app's App\ChrisLauncher directory, and also copy the splash screen to App\ChrisLauncher\AppNamePortable.jpg. You can look at the included ChrisPortableApps.comLauncher.ini file, or read help.html which has pretty complete documentation of what everything does, including a couple of examples, like this one for 7-Zip which does everything that the current 7-Zip Portable launcher does, and updates drive letters as well:
[AppDetails] PortableAppLongName=7-Zip Portable AppLongName=7-Zip ProgramDirectory=7-Zip ProgramExecutable=7zFM.exe [LiveMode] CopyData=true [Registry] 7zip_portable=HKEY_CURRENT_USER\Software\7-Zip
Also this Code::Blocks one:
[AppDetails] PortableAppLongName=Code::Blocks Portable PortableAppShortName=CodeBlocksPortable AppLongName=Code::Blocks ProgramDirectory=CodeBlocks ProgramExecutable=codeblocks.exe [LaunchDetails] DefaultCommandLineArguments=--no-check-associations --no-dde --no-splash-screen [LiveMode] CopyData=true [DirectoriesMove] personalities=%APPDATA%\codeblocks UserTemplates=%APPDATA%\codeblocks share=%APPDATA%\codeblocks [DirectoriesCleanupIfEmpty] 1=%APPDATA%\codeblocks [DriveLetterUpdate] 1=%DATADIR%\personalities\default.conf
- Made AssignContainedTempDirectory work with WiatForProgram=false
- Improved Java support (not just CommonFiles)
- INI Change: [LaunchDetails]:RequiresJava is now [CommonFiles]:Java=require (=require or find)
- Remove newadvsplash.dll with WaitForProgram=false
- Fixed major bug with ForEachINIPair, should all work fine now.
- Added read-only attribute removal with Live mode.
Still to do:
- Language handling (via environment variables and ConfigWrite for starters)
"Live" mode (configurable with just two INI options, whether program data needs to be, and whether the program directory needs to be, copied to the local hard drive.)Done in Test 2
- Examine all the launchers I can get my hands on and implement anything I can think of
- Suggestions very welcome - please suggest things!
Questions for other developers:
- New question: should we go for a logical workflow-oriented layout, so that after a certain point, you can have logical structure to suit an application, line by line doing each action, instead of each thing in its own INI section? This would make e.g. BPBible possible easily - replace DataPath= with AugmentPath=, AugmentPath=%DATADIR%\resources with DataPath=%DATADIR%\resources, write INI string DataPath=%DATADIR%\resources (see BPBible launcher's source code for more details on how and why)