Changelog for yaP - yet another Portablizer
http://rolandtoth.hu/yaP/


v0.7 - March 09, 2016
- NEW: uservars available in GENERAL section too (suggested by Shyam Saurabh)
- NEW: option to set default values for USERINPUT, USERFILE and USERDIR
  To make this work, new user variables have to be created beforehands.
  
  Examples:

  uservar = USERTEXT_DEFAULT :: Hello!
  uservar = USERTEXT_TITLE :: Important notice
  uservar = USERTEXT_MESSAGE :: Please say Hi or Hello
  message = {USERTEXT}

  uservar = USERFILE_DEFAULT :: D:\helloworld.txt
  uservar = USERFILE_TITLE :: Please select your favorite file
  uservar = USERFILE_PATTERN :: Text files | *.txt;*.json | Documents | *.doc
  message = {USERFILE}

  uservar = USERDIR_DEFAULT :: %windir%
  uservar = USERDIR_TITLE :: Please select your favorite folder
  message = {USERDIR}


v0.6.5 build 293 BETA - March 30, 2015
- FIXED: launching applications with non-exe extension (thanks to Midas)
- NEW: main icon update


v0.6.5 build 287 BETA - February 16, 2015
- NEW: ini keys ending with "X64" are executed only if:
  - yaP is running on 64bit Windows, and
  - the "application" key has a second exe set (indicating that yaP is running in X64 mode)

  Example:
  application = App\App.exe :: App\AppX64.exe
  envvar = JAVA_HOME :: {YAPROOT}\jre
  envvarX64 = JAVA_HOME :: {YAPROOT}\jre64

  The first exe must be set even if the application does not support 32bit:
  application = NULL :: App\AppX64.exe
  
- NEW: ini keys ending with "X86" are executed only if yaP is not running on 64bit Windows
- FIXED: keep passed parameters when yaP is restarted in admin mode
- FIXED: adding registry values failed if contained spaces


v0.6 build 188 BETA
-----------------------------------------------
- NEW: added 64bit version of yaP to the distribution package (yaPX64.exe).
  The 64bit version allows accessing registry keys without redirection (e.g. HKLM\Software).
- NEW: launching main application maximized/minimized/hidden
  Syntax: application = App.exe [ :: AppX64.exe] [ :: max | min | hide]
  Example: application = App\App.exe :: NULL :: max
- NEW: using "*" as the first character of main exe disables main application path validation
  Example: application = *App\NonExistingFile.exe
- NEW: systemrefresh also refresh desktop wallpaper
- NEW: {JAVAEXE} macro: absolute path to installed Java executable (javaw.exe)
  Example usage:
  application = {JAVAEXE}
  commandline = -jar "{YAPROOT}\App\MyFile.jar"
- NEW: on X64 systems yaP first looks for "<EXENAME>X64.ini". 
  If not found, "<EXENAME>.ini" will used.
  Same holds true for the "yaP.ini" fallback (first "yaPX64.ini", then "yaP.ini").


v0.6 build 19 - February 24, 2014
-----------------------------------------------
- FIXED: keyword "batch" could not resolve relative paths
- FIXED: extra quotes in +regvalue with REG_SZ (thanks to Latcyba)


v0.5 build 488 - January 04, 2014
-----------------------------------------------
- NEW: feature to wrap registry values (keyword "regvalue")
- NEW: feature to backup registry values (keyword "(regvalue)")
- NEW: feature to copy/move registry values (keyword "->regvalue")
- NEW: feature to export registry values (only "REG_SZ" and "REG_DWORD" types are supported)
- CHANGED: "regexport" first segment needs a trailing backslash to indicate a registry key


v0.5 - January 02, 2014
-----------------------------------------------
- WARNING: major code rewrite - config syntax has changed, ZERO BACKWARD COMPABILITY.
  Please see the website and config examples for the new keywords and syntax.
- CHANGED: only 3 ini sections: GENERAL, BEFORE and AFTER:
  keywords can be used in BEFORE and AFTER sections as many times as needed and in arbitrary order.
  Complex functions (wrap, backup and symlink) can be used only on BEFORE run.
- CHANGED: more reliable item execution: the next item should always wait for the previous to complete
- CHANGED: admin mode run: yaP will request admin mode instead of only showing a message
- CHANGED: yaP deletes all empty parent regkeys if the regkey is a subkey of "HKCU\Software" or "HKLM\Software"
- CHANGED: help in the ini file moved to the bottom
- CHANGED: all example configs updated to v0.5 syntax
- NEW: online check (keyword "!online")
- NEW: OS version check (keyword "!os")
- NEW: wait other process to execute AFTER items (keyword "!waitprocess")
- NEW: copy and move functions (dir, file, regkeys)
- NEW: feature to create new file with content (keyword "+file")
- NEW: feature to change file or dir attributes (keyword "attributes")
- NEW: feature to change file date (keyword "date")
- NEW: feature to put text on clipboard (keyword "clip")
- NEW: feature to read and write ini files (keywords "iniread" and "iniwrite")
- NEW: feature to kill process (keyword "killprocess")
- NEW: feature to quit (keyword "quit", mainly for testing purposes)
- NEW: feature to register/unregister dll files (keyword "regdll")
- NEW: feature to export reg keys (keyword "regexport")
- NEW: feature to merge reg files (keyword "regmerge")
- NEW: feature to global search and replace (keyword "replace")
- NEW: feature to indicate when to run automatic AFTER items (keyword "restore")
- NEW: feature to replace string in string (keyword "stringreplace")
- NEW: feature to run other applications (keyword "run")
- NEW: feature to create symlinks (keyword "symlink", needs admin rights and NTFS filesystem)
- NEW: feature to add user variables (keyword "uservar")
- NEW: date and time macros
- NEW: {WORKDIR} macro: working directory of the main application
- NEW: {COMMANDLINE} macro: parameters passed to the main application
- NEW: {PARAMETERS} macro: parameters passed to the launcher
- NEW: language/locale macros: {LANG} {LOCALE} {LOCALENAME} {LOCALENAME_SHORT} {COUNTRY}
- NEW: application name, version number and website url added to config files
- NEW: wildcards "*" and "?" can be used in some file and directory operations
- NEW: path macros in double curly braces will return paths with double slashes (eg. {{APPEXE}} -› "D:\\Dir\\App.exe")
- NEW: delete "MuiCache" reg values for the launcher and the main app on close
- NEW: reduced memory usage: ~1 MB
- WEB: various website improvements (filter example configs, more detailed documentation with examples, etc)


v0.34 - November 02, 2013
-----------------------------------------------
- NEW: simple encryption of config items (based on Droopy's function @ http://www.purebasic.fr/english/viewtopic.php?f=12&t=15203)
- NEW: added yaPcrypt tool to encrypt or decrypt config items
- NEW: {USERTEXT} macro: show a text input dialog to dynamically add text at runtime
- NEW: {USERFILE} macro: show a browse file dialog to dynamically add filepath at runtime
- NEW: {USERDIR} macro: show a browse directory dialog to dynamically add path at runtime
- NEW: replaceline feature to [FILES] section: replace whole lines in files (text files only, runs both on BEFORE/AFTER parts)
  Syntax:
  replaceline={FILE} ::: {beginning of line to find} ::: {replacement}

  Example:
  replaceline=Profile\WireKeys GPL.conf ::: <uint-checkForUpdates value="1"/> ::: <uint-checkForUpdates value="0"/>
- FIXED: .NET check if only major version number was supplied with the required mod (e.g. 4!)


v0.33 - September 28, 2013
-----------------------------------------------
- NEW: %Documents% and %MyDocuments% as aliases to %Personal%
- shell folders can be used with and without spaces, e.g. %My Pictures% and %MyPictures%


v0.32 - June 18, 2013
-----------------------------------------------
- FIXED: "create" in [DIRECTORIES] expands yaP macros and environment variables


v0.31 - June 10, 2013
-----------------------------------------------
- FIXED: reg.exe path hardcoded to "%windir%\system32\reg.exe" to avoid unintentional launching of any reg.exe in the main appication directory
- FIXED: cmd.exe path hardcoded to "%ComSpec%" to avoid unintentional launching of any cmd.exe in the main appication directory
- FIXED: deleting registry key when making backup of the local registry key. This might have caused portables to pick up local settings (if any).


v0.3 - June 08, 2013
-----------------------------------------------
- FIXED: avoid escaping if last character in registry data is a backslash ([REGISTRY VALUE] items)


v0.29 - June 06, 2013
-----------------------------------------------
- FIXED: creating new directory in [DIRECTORIES] should use launcher root as default path instead of main application directory


v0.28 - May 31, 2013
-----------------------------------------------
- FIXED: setting default working directory if left empty in the config file.
  This caused keys remaining in the registry in certain situations.


v0.27 - May 28, 2013
-----------------------------------------------
- NEW: feature to automatically launch 64bit version of the main application if yaP is run on 64bit OS.
  If 64bit executable path is not set or invalid, 32bit version will be launched.
- example configurations can be downloaded as zipped packages instead of single ini files


v0.26 - May 26, 2013
-----------------------------------------------
- rewritten in PureBasic (http://www.purebasic.com/)
- yaP website launched (http://rolandtoth.hu/yaP/)
- NEW: [DIRECTORIES], [FILES], [REGISTRY KEYS] and [REGISTRY VALUES] sections to the ini file.
  yaP will take care of directories, files and registry keys/values listed in these sections so it is possible to make wrappers without using any batch or reg file.
  All BEFORE/AFTER items are executed after these items.
  For advanced wrapper logic use batch files instead.
- REMOVED: "deleteregkeyifempty1" settngs: use [REGISTRY KEY] with "delempty" instead
  Default location is launcher's directory or "Settings" subdirectory if exists
- NEW: "before" and "after" commandline parameters when executing batch files
  This allows using the %1 variable to retrieve current mode and you can use one batch file instead of two using conditionals (see example setups)
- NEW: requireadminrights setting: use to warn the user if admin rights is required for the main application to run
- NEW: requirejavaversion setting: notify the user if the minimum Java version needed to run the main application is not installed
- NEW: requiredotnetversion setting: notify the user if a specific Microsoft .NET version is needed to run the main application and is not installed
- NEW: environment variables support (http://en.wikipedia.org/wiki/Environment_variable#Default_Values_on_Microsoft_Windows)
- NEW: user-defined environment variables support
- NEW: shell folder support for %Administrative Tools%, %Cache%, %CD Burning%, %Cookies%, %Desktop%, %Favorites%, %Fonts%, %History%, %Local Appdata%, %My Music%, %My Pictures%, %My Video%, %NetHood%, %PrintHood%, %Programs%, %Recent%, %SendTo%, %Start Menu%, %Startup%, %Templates%, %Personal%
- NEW: macro {YAPROOT}: launcher directory absolute path
- NEW: macro {EXEPATH}: main application's absolute path
- NEW: macro {DRIVE}: launcher drive letter, e.g. "D"
- NEW: macro {CLIPBOARD}: text on clipboard
- NEW: macro {LINEBREAK}: new line (for messages)
- NEW: example configurations for BabelMap, CamStudio, Foxit Reader, Foxmail, FreeVoipDeal, Highlight, IniTranslator, JPEG & PNG Stripper, KCleaner, Komodo Edit, L517, LightShot, MailStoreHome, MetaStripper, MySQL Workbench, NetBeans, PhotoScape, PicasaDownloader, Poedit, TogglDesktop, XML TreeEdit, Windows Grep, Vocatude (2.0), WinLock
- CHANGED: ini documentation: the ini contains only one line description of each item to make it easier to read. Use the full documentation that comes with yaP package for more (RTFM).
- CHANGED: using REG.exe instead of REGEDIT.exe in batch files to disable UAC prompt in example setups
- RESTORED :"configdir" setting (previously called "rootdir"): directory where yaP looks for .bat and .reg files.
  If empty or not set, yaP will use the launcher's path OR the "yaP" subdirectory if exists.
- RESTORED: "-1" setting for silentbatch (show console window without closing)


v0.25 - Dec 24, 2012
-----------------------------------------------
- ported from NSIS to AutoIt
- NEW: possibility to add your own message before or after launching the main application, e.g. "Click Yes to run the application"
- NEW: example setups for Dukto R5, UltraVNC, WinLess
- REMOVED: rootdir option: before/after items go to the "yaP" directory (hardcoded)
- REMOVED: nowait option: if there are no AFTER items the launcher terminates after executing the main application
- REMOVED: silentbatch -1


  v0.24 - Jun 30, 2012
-----------------------------------------------
- added example setups for Auspex, LICEcap


  v0.23 - Apr 02, 2012
-----------------------------------------------
- yaP now creates "EXENAME.ini" if no ini file found (instead of "yaP.ini")
- RequestExecutionLevel set to "user" - should disable UAC prompt
- new ini option: multipleinstance - option to enable or disable running multiple instances
- added example setups for Anki, CogniTrainerGSpot, FTP Wanderer, GSpot, Images2PDF, Image Tuner, ISO Workshop, MITT, ocenaudio, OverDisk, ODIN, QDictionary, ShiftN, Sizer, SoftPerfect Network Scanner, SolveSpace, SUMo, TClock Light
- added urls to example applications
- updated to NirCmd 2.65


  v0.22 - Oct 25, 2011
-----------------------------------------------
- added "silentbatch=-1" option to disable closing of cmd window (for testing purposes; don't forget setting @echo on in your batch files)


  v0.21 - Dec 22, 2010
-----------------------------------------------
- added support for deleting empty registry key (see DeleteRegKeyIfEmpty1 in yaP.ini)


  v0.2 - Dec 24, 2009
-----------------------------------------------
- added support for absolute paths (main application & root directory)
- added support for user-defined working directory, both absolute adn relative path support (default set to main application's directory)
- added support for renaming config file
- using NirCmd 2.37 (http://www.nirsoft.net/utils/nircmd.html) for executing batch silently
- version numbering
- included examples: Klavaro, Scrollable Desktop, WinDjView


  v0.13 - Dec 09, 2009
-----------------------------------------------
- fixed bug causing yaP not to execute before & after items if they were in subfolders
- added option to prompt user before & after executing the main application
- added an example setup for WinDjView to the package


  v0.12 - Dec 08, 2009
-----------------------------------------------
- project renamed to yaP (yet another Portablizer)
- added nowait support: if set to 1, yaP launches the main application and quits (won't execute AFTER items)


  v.011 - Oct 08, 2009
-----------------------------------------------
- added commandline support: Portablizer now can be used for applications requiring command line switches to run portably


  v.01 - Feb 09, 2009
-----------------------------------------------
- initial release