

Things to know about the pkZIPped image of the launcher:
========================================================

Unzip, as follows:
   md c:\launch
   cd c:\launch
   PKUNZIP -d imglnch.zip

This will create a subdirectory to hold the source named,
as you would expect, c:\launch\source.  This directory holds
one file: LAUNCH.ZIP which contains the entire Delphi project.

The main directory, c:\launch, holds 3 kinds of files:

  Executable:  LAUNCH.EXE
  Ini File:    LAUNCH.INI
  Bitmaps:     *.BMP

The launcher will allow the user to specify any one of the bitmap
files found in the main directory as a background for the toolbar.

LAUNCH.INI should be placed in the Windows directory or the
program will create a new one.

---------------------------------------------------------------------
New upload of Launcher - 11/05/95
Removed extraneous files from ZIP image.  
Reduced size of ZIP.
Fixed INI file.

---------------------------------------------------------------------
New version of Launcher - 11/05/95

* Examines Module Name of all open top-level Windows.  If
Module name matches that stored already for this button, new
instance is not launched.  This may solve the Netscape
"double-launch" problem.

Known problems (causes unknown):
- When identical command lines are entered (I don't know why
  anyone would purposely do this), all identical items in the
  program List Box are clicked on and off together.
- It is possible to replace a valid command line with an invalid
  command line under certain (as yet uncharacterized) circumstances.
- Error messages may occasionally appear at wrong time or do not
  appear when required.

Unknown
- Does this version prevent Netscape Dialer from being launched?  I
  would test this if given a copy of Netscape Dialer.

---------------------------------------------------------------------
New version of Launcher - 10/16/95

* Can add arguments to command line after program name
* Can add DOS files (PIF, BAT, COM)
* Full pathname is not necessary when program file is
  located in current directory, Windows or Windows\System
  directories.
* Program configuration is more robust.

Known problems (causes unknown):
- When identical command lines are entered (I don't know why
  anyone would purposely do this), all identical items in the
  program List Box are clicked on and off together.
- It is possible to replace a valid command line with an invalid
  command line under certain (as yet uncharacterized) circumstances.
- Error messages may occasionally appear at wrong time or do not
  appear when required.
- Duplicate instances of programs are prevented by associating
  the Instance handle of the launched program with the button
  used to launch it.  This technique does not work in all
  circumstances.  If a program launches other programs with
  distinct instances then terminates itself leaving the other
  programs running, the user will not be prevented from running
  the program again.

  The second launch attempt will trigger the Launcher to search
  all running applications looking for an instance handle that
  matches the handle associated with the button that the user
  clicked to try to launch the program.  Since the program
  killed itself after spawning one or more other programs, the
  Launcher will not find its former instance handle and will
  assume (in this case wrongly) that it is OK to launch the
  program.  However, the program will once again try to spawn
  child programs and this may cause duplicate instances of the
  child programs and whatever detriment that would cause.

  The only way to prevent this is to somehow keep track of all
  programs spawned indirectly through the Launcher.  I don't
  know how to do this, but I have some thoughts about where to
  look (ie. at TOOLHELP.DLL).  Of course, it goes without saying
  that duplicate instances of programs not launched from the
  Launcher (ie. from FileManager or PgmManager) cannot be
  reliably or practically prevented.

