---------------------------------------
Readme for KeepUpApp 0.9.7.0 2012-12-31
---------------------------------------
(See What's new section at the end of this file)

Index:
- What is it?
- Systemrequirements
- How to use it?
- Configuring applications
- Command-line options
- TODO / Known issues
- Changes / What's new

-----------
What is it?
-----------
KeepUpApp is a tool to keep your applications and services running, where they may be stopping/crashing for undetermined reasons.
This is achieved by continuously checking if the executable or service is still running, and starting the application or service if it's not found running.
KeepUpApp handles 32 bit and 64 bit applications, and services, on the local computer. It currently does not handle applications or services on remote systems.
If any 64 bit applications are configured, a 64 bit instance is extracted from the main executable (if not already found in the current directory), that checks these 64 bit applications.
This extracted 64 bit executable is removed when KeepUpApp is stopped.

KeepUpApp was developed for the N.A.N.Y 2013 event, as organized by the DonationCoder.com forum community: 
N.A.N.Y. 2013 thread: http://www.donationcoder.com/forum/index.php?board=313.0
KeepUpApp pledge: http://www.donationcoder.com/forum/index.php?topic=32708.0
KeepUpApp release: (todo)
KeepUpApp Website: http://ath.dcmembers.com/wb/pages/software/keepupapp.php

-------------------
Systemrequirements:
-------------------
- Windows NT based Operating system (Windows XP, Windows Vista, Windows 7, Windows 8)
- 256 MB available memory
- 3 MB Harddisk storage, (may need more space if logging is enabled)

--------------
How to use it?
--------------
1) Install on a (Windows) computer
   - Create a new directory
   - Unpack the zip-file
2) Configure applications or services to monitor
   - Run the (main) executable KeepUpApp.exe
   - Select 'Settings...' from the context menu of the system-tray icon
   - Add applications to the list
3) Add to the Windows Startup programgroup

-------------------------
Configuring applications:
-------------------------
1) Open the setting screen, by starting KeepUpApp if not already running, and selecting the 'Settings...' option from the Right-click menu of the systemtray icon
2) Add a new entry to the list by choosing "Edit/Add Application to list" from the menu, or by pressing Ctrl-I.
   a) Select a currently running application or service by choosing on from the browser available from the button next to the "Application" field.
      Most parameters will be set automatically from the running application.
   b) Alternatively select the executable filename and path by using the file-browser available from the button next to the "Path" field.
      You'll have to select the Parameters, WorkingDir and other options by hand.
3) Save the configuration either by pressing Ctrl-S or selecting "File/Save settings" from the menu.
4) Remove an Application by selecting it, and pressing Ctrl-D or selecting "Edit/Delete Application from list" from the menu.

Available settings per Application:
-----------------------------------
Application:	Executable name that is to be found running. No path should be entered here.
Path:			Full path and filename of the application. Will be used to start the application if it's not found running.
Parameters:		Any parameters that should be passed to the application on startup (optional).
WorkingDir:		The 'current directory' to use when starting the application.
Servicename:	The Windows Servicename to check. The executable and path information won't be used if the Servicename is filled and the service exists. It's (re-)activated using the normal Windows Service Control Manager.
Pause not allowed:	Only available for services: If checked the named service is not allowed to be in Pause state, it will be Resumed in that case.
App is x64:		Must be set for 64 bit applications.
Multi-instance:	If multiple instances of an application can co-exist, then this option should be checked. Different instances are determined based on Parameters and WorkingDir.
Delay-restart:	Delay in milliseconds after detecting that an application or service isn't active and before it is restarted. (To cater for application updates and auto-recovering services)
Ignore-after:	The time in milliseconds to ignore an application or service after it's restarted. This gives the application some time to startup and load/activate stuff, and avoids it being started multiple times.

Available Global & Default settings:
------------------------------------
Display Tray-message on tray-icon restore:		Displays a tray-message for some seconds after the Tray-icon is restored (from a second instance of KeepUpApp).
Flash Tray-icon on tray-icon restore:			Flashes the tray-icon a few times after it is restored from being hidden.
Display Tray-message on Application restart:	Displays a tray-message for some seconds if an application or service is restarted.
Hide Tray-icon:					Hides the tray-icon. Only for current instance, unless the option "Store 'Hide Tray-icon' state" is checked. Default: Unchecked.
Store 'Hide Tray-icon' state:	Stores the current setting of Hide Tray-icon, to be used on next start of KeepUpApp. Default: Unchecked.
Pause KeepUpApp:				Pauses KeepUpApp. Only for current instance, unless the option "Store 'Pause KeepUpApp' state" is checked. Default: Unchecked.
Store 'Pause KeepUpApp' state:	Stores the current setting of Pause KeepUpApp, to be used on next start of KeepUpApp. Default: Checked.
Default delay restart:			Default Delay in milliseconds after detecting that an application or service isn't active and before it is restarted. Used when the Application 'Delay-restart' setting is empty.
Default ignore-after:			Default Time in milliseconds to ignore an application or service after it's restarted. Used when the Application 'Ignore-after' setting is empty.
Tray-tip icon:					Select the icon to show on any Tray-message: 0 - None, 1 - Info, 2 - Warn
Timer-interval:					Select the timer-interval for checking the list of applications. 'Fast' gives relatively high CPU-load, and should only be used if the applications are very critical.
								'Normal' or 'Slow' is usually the best choice. 'Very Slow' should be used on slow, and/or single-CPU computers, or when applications aren't much critical.
Debug-mode:						Determines the level of logging that is written to the log-file. 0 - Off, 1 - On, 2 - High.

Settings Menu options:
----------------------
File:
  Save settings					Save current settings (Ctrl-S)
  Exit							Close the Settings form (Ctrl-F4). If any settings are modified but bot yet saved, a prompt is displayed so the changes can either be saved, discarded or the Exit cancelled.
Edit:
  Add Application to list		Adds a new Application entry to the list (Ctrl-I). Either the Application, Path or Servicename need to be set for the Application to be stored on save.
  Delete Application from list	Remove the selected application from the list (Ctrl-D). Only enabled if an Application is selected in the list.
Options:
  (No options yet)
Help:
  Check for updates...			Run a check for update using mouser's DcuHelper/DcUpdater tool for fetching the latest release of KeepUpApp from the website.
  About...						Display the About messagebox, showing info about all supported command-line parameters of KeepUpApp.

---------------------
Command-line options:
---------------------
-d|-d-		Enable/Disable Debug mode, write log info to KeepUpApp<x64>.log
-t timer	loop time in msec (default: 450 msec)
-f file		read applications and settings from file (default: KeepUpApp.ini)
-r delay	delay before an app is restarted (default: 0 msec)
-i ignore	postpone checks after an app is restarted (default: 10000 msec)
-a+|-a-		Enable or Disable activity (-a- = Pause on)
-ap+|-ap-	Enable or Disable storing activity-state (Default: on)
-tm|-tm-	Toggle or Disable Tray Restore & Reload Message (Default: On)
-tf|-tf-	Toggle or Disable Tray Restore Flash (Default: Off)
-ts|-ts-	Toggle or Disable Tray Icon Display (Default: On)
-tp+|-tp-	Enable or Disable storing tray-icon-state (Default: Off)
-ti 0..2	Set icon for traytips (Default: 0 = None; 1 = Info, 2 = Warn)
-em|-em-	Toggle or Disable Message on Restart (Default: On)

If an instance of KeepUpApp is already running:
-exit		Close the running instance
-restore	Restore tray-icon of the running instance
-hide		Hide tray-icon of the running instance
-pause		Toggle Pause On/Off of the running instance
-mem		Optimize memory of the running instance (Default: once / 10 min.)
-set		Run, and show the Settings form, optionally of the running instance

--------------------
TODO / Known issues:
--------------------
- TODO: Add Option to create/detect entry in AutoStart (registry)
- TODO: Implement Update mechanism using mouser's DcuHelper/DcUpdater

---------------------
Changes / What's new:
---------------------
2012-12-31, v0.9.7.0
- Initially released for NANY 2013