Building upon the great work that Klonk is doing with his Portable Application Template version 1.9.1 (found here: https://portableapps.com/node/6709), I took it one step further and make a full-blown launcher that can be configured just by editing an ini file.
If you have a few moments take a look at it here:
http://thebabineaus.com/software/PortaLaunch/PortaLaunch.rar
This will be the last release except for bugfixes! John is working on a project with similar goals as this and in time that will be released. Unless there is a need for me to continue, don't expect much.
This one includes a bunch of cool stuff like recompiling on the fly and a little program to help you export your registry keys. I put a few hours into it..
NOTE: This is the OLD version, for reference: http://thebabineaus.com/software/PortableAppLauncher/PortableAppLauncher...
PortaLaunch should be considered "beta" quality.
Features: (in addition to those in the Portable Application Template)
- will recompile the nsi file for you on the fly with your description and icon so it shows up properly in PAM.
- Includes a GetReg program to help export any registry keys for your application
- You can customize the splash page!
- Will dynamically tell you the application that is launching on the fly in the splash screen
- Portable-izing an application is as simple as exporting any related registry keys and editing an ini file. No recompilation necessary!
- The registry file "template" (Config\RegKeys.reg), SettingsDir#, EnvVar#, and SettingsFile# are all parsed and any occurrences of these variables will automatically be replaced with the appropriate value:
- %DESTPATH% = App\{Application}
- %EXEPATH% = .\ (current directory that the wrapper is running from)
- %DATAPATH% = Data\
- %USERDATAPATH% = Data\UserProfile
- %LICENSEKEY% = RegLicenseKey specified in ini file
- %LICENSENAME% = RegLicenseName specified in ini file
- %LICENSECOMPANY% = RegLicenseCompany specified in ini file
- %COMPUTERNAME% = The computer name that the program is currently running on
- %COMPUTERNAMEFULL% = the fully qualified domain name of the computer the program is currently running on (e.g. computer.domain.com)
- %USERSID% = The SID (Security ID) of the currently logged in user.
- %USERNAME% = The username of the currently logged in user
- Supports setting local environment variables, including substitution so things like PATH=..\..\..\common\jre\bin;%PATH% work as expected.
- Supports replacing files and/or directories on the local disc, then putting the old ones back when the program finishes
- Supports checking to make sure the logged in user has local admin rights, if your program needs that.
- Supports custom splash screen, or use the (currently lame) built in one
- Supports preloading DLLs, in case you need them (some old VB6 apps require this if you want to make them portable, for example).
- The installer will extract its own sources if you supply a --dumpsource command-line option. To do this, simply open a command prompt, navigate to the directory where the launcher executable is, and run it like this: PortableApp Launcher.exe --dumpsource
Please try it out and come back and comment on it! Any bug reports get a gold star
Changelog:
1.0.3 - 2007/05/12 - Bugfix, feature release
- Changed the name to "PortaLaunch".
- Added the ability to set your own program icon, name and description by automatically recompiling the NSI file for you, just by setting Recompile=true in the ini file.
- Fixed the splash screen (again). Everthing but the current combination of InitPluginsDir, /NOUNLOAD, marquee and newadvsplash calls were crashing the launcher hard. It seems to be stable now though.
- Changed the splash screen to one much cooler looking (thanks JM!)
- Added GetReg utility to help with exporting the registry keys for your app
?
1.0.2 - 2007/05/11 - Bugfix, minor feature release
- Fixed a bug where it wasn't showing the splash screen even when it was enabled.
- Added a dynamic notice in the splashscreen telling the user which application is starting.
1.0.1 - 2007/05/11 - Bugfix, minor feature release
- Fixed SettingsDir# to actually work
- Modified the SettingsFile# to work like the new SettingsDir# functions. I haven't found
anything to test this on yet, but seems like it should work! - Added a HideWindow .ini option for hiding any DOS box that might pop up, as is the case when
running scripts or JIT-compiled applications (Java apps, for example). - The variable substitution now works for the SettingsDir#, SettingsFile#, and EnvVar# ini
values, in addition to the RegKeys.reg file. - Added a %USERNAME% variable to the list of variables that are replaced in the reg file,
SettingsDir#, EnvVar# and SettingsFile# .ini settings - In addition to the variable substitution above, any environment variables will also get
replaced with the appropriate values. - Variables were not getting substituted unless they were at the very end of the string
(PATH=..\..\..\jre\bin;%PATH%, for example). Now they will be substituted no matter what
position they are in the string.
1.0 - 2007/05/09 - Initial release
-Steve.