home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
High Voltage Shareware
/
high1.zip
/
high1
/
DIR9
/
UNST13.ZIP
/
INSTALL.DOC
< prev
next >
Wrap
Text File
|
1993-08-16
|
72KB
|
2,273 lines
Universal
=== = = == === === = =
| |\ | | | | | | |
| | \| \\ | |=| | |
=== = = === | = = === ===
Universal INSTALL
Software Installation Utility
version 1.3
SHAREWARE KIT DOCUMENTATION (39 Pages)
More information available by running README.EXE!
Produced by
The GoodSoft Co.
1630 30th Street, Suite 235
Boulder, Colorado 80301 USA
CompuServe Mail ID 72073,225
FAX Number: (303) 430-7943
<ASP> Member
Page 1
CONTENTS
=============
About Universal Install/The GoodSoft Co...........4
ASP Ombudsman Statement...........................4
Purchasing Universal INSTALL......................5
Foreign language versions of INSTALL..............6
What is a script file?............................7
How to create a script file.......................7
The script file format............................7
SCRIPT FILE COMMANDS (BY CATEGORY)
Creating and Using Windows
Creating a window section.......................8
Border..........................................8
BottomTitle.....................................8
CloseWindow.....................................9
ColumnMargin....................................9
PopUp...........................................9
RowMargin.......................................9
ShadowColor.....................................10
ShadowType......................................10
StartColumn.....................................10
StartRow........................................11
Text............................................11
TopTitle........................................11
WindowColor.....................................12
General Screen Commands
BackPlane.......................................13
BottomBar.......................................13
ClearPlane......................................13
ClearScreen.....................................14
Text............................................14
TopBar..........................................14
General System Commands
CheckDiskSpace..................................15
ColdBoot........................................15
DiskSpaceReq....................................15
DOSVersion......................................16
FindDisk........................................16
FindBootDrive...................................16
Jump............................................17
KeepLogFile.....................................17
RunProgram......................................18
SystemDelay.....................................18
Wait............................................19
WarmBoot........................................19
Getting Keyboard Input From the User
Creating a user-input section...................20
Action..........................................20
Page 2
Default.........................................20
StartColumn.....................................21
StartRow........................................21
TextColor.......................................21
Width...........................................22
Using Script Variables
Script variables................................23
Using Buttons
Creating a buttons section......................24
ButtonOffColor..................................24
ButtonOnColor...................................24
ColumnMargin....................................25
RowMargin.......................................25
Distance........................................25
Message.........................................26
Result..........................................26
GoButton........................................26
StartColumn.....................................27
StartRow........................................28
Travel..........................................28
Copying Files
Creating a copy files section...................29
DestPath........................................29
DiskLabel.......................................29
CopyFile........................................30
SourceDisk......................................30
SourcePath......................................31
StatusLineBG....................................31
StatusLineFG....................................31
StatusColumn....................................31
StatusRow.......................................32
Modifying CONFIG.SYS
Creating a modify config section................33
AddLine.........................................33
FindString......................................33
Adding Parameters...............................34
RemarkString....................................34
SaveOriginal....................................35
Modifying AUTOEXEC.BAT
Creating a modify autoexec section..............36
AddLine.........................................36
AddPath.........................................36
SaveOriginal....................................37
Using the "Un-Install" Feature
How "un-install" works..........................38
Creating an installation log file...............38
Using the REMOVE utility........................38
The REMOVE utility data file....................38
Tips on using REMOVE............................39
Page 3
ABOUT UNIVERSAL INSTALL
===========================
Universal INSTALL is a product of The GoodSoft Co., a contract
software development firm based in Boulder, Colorado. The GoodSoft Co.
was established in 1988 through consulting and custom programming
contracts. We have been developing commercial software for others for many
years, and Universal INSTALL originally began as a project for us to
simplify the installation of the software we created for our clients.
Universal INSTALL is being offered through the shareware concept, e.g.
try it before you buy it. While copyright laws apply to shareware in the
same manner as with commercial software, you are encouraged to pass this
SHAREWARE KIT (with all files included and un-modified) around freely, so
long as you don't charge more than a reasonable fee for actual distribution
costs. If you use Universal INSTALL on a basis past an "evaluation period",
or expect to distribute your INSTALL programs with your software, you are
expected to pay for the product. (Please see "Registering..." below).
_______
____|__ | (R)
--| | |-------------------
| ____|__ | Association of
| | |_| Shareware
|__| o | Professionals
-----| | |---------------------
|___|___| MEMBER
ASP OMBUDSMAN STATEMENT
===========================
" The GoodSoft Co. is a member of the ASP (Association of Shareware
Professionals). ASP wants to make sure that the shareware concept works
for you. If you are unable to resolve a shareware-related problem with an
ASP member by contacting the member directly, ASP may be able to help. The
ASP Ombudsman can help you resolve a dispute or problem with an ASP
member, but does not provide technical support for members' products.
Please write to the ASP Ombudsman at: 545 Grover Road, Muskegon, MI
49442-9247 USA. ASP ombudsman FAX #: (616) 788-2765. Or, send a CompuServe
message via CompuServe Mail to 70007,3536. "
Page 4
PURCHASING UNIVERSAL INSTALL
==================================
Because the shareware concept is based on trust, if you use Universal
INSTALL beyond a reasonable evaluation period, you need to purchase the
product. This is known as "registering" or becoming a registered user.
Becoming a registered Universal INSTALL user has many advantages, as
described in README.EXE and listed below...
- Script generator package registered to your company.
- Your choice of a script file distribution filename (instead
of the SHAREWRE.VER filename used in this kit), also
registered in our database for your company's exclusive use.
- Winster, a "screen painting" tool that creates script
files for you.
- Published developer documentation and script file tips.
- Viewer, a utility that allows your user's to view a text
file in a manner similar to our README.EXE.
- DiskMake, a great time-saving media build utility. We use it
to create our distribution disks.
- Remove, a utility to allow your users to "undo" an
installation.
- Access to non-English versions of INSTALL.
- An extra set of pre-written scripts - adapt them for
your use.
- Access to the latest news about Universal INSTALL.
- Participation in developing future releases and features.
- The next upgrade...free!
To order:
Registered user package...........$36.00 (US), $40.00 (Outside U.S.)
Shareware kit.....................$ 1.00 (US), $ 3.00 (Outside U.S.)
Send a company/personal check or money order (in U.S. funds) to:
The GoodSoft Co.
1630 30th Street - Suite 235
Boulder, Colorado 80301 U.S.A.
CompuServe Mail 72073,225
Inquiries only: FAX: (303) 430-7943
If you prefer to pay via credit card, the following organizations
will accept orders for Universal INSTALL:
CompuServe (GO SWREG, database ID# 907)
Software Excitement! 1-800-444-5457
Page 5
NON-ENGLISH LANGUAGE VERSIONS OF UNIVERSAL INSTALL
======================================================
The great part about using script files for your installation process
is that you have complete control over what is shown to your users. This
means that creating an installation that uses a language other than English
is rather simple - just create a script file that displays text in the
language desired.
The one aspect of INSTALL that is not under script file control is
the error messages displayed if something unexpected happens. These error
messages are built into INSTALL on purpose: (1) to have them always
available to the program, and (2) to avoid having to mess with more files
during the installation process. This keeps INSTALL as self-contained and
fast as possible!
Since many of our customers are using Universal INSTALL in non
English-language countries, we've decided to offer foreign language
versions of INSTALL. Although only a German-language version is currently
available (as of 8/16/93), we are looking to offer more languages
immediately. Our standard practice is to offer a free Universal INSTALL
package to the first developer willing to translate a few lines of text.
We then build the translated text into a new language version of INSTALL.
So, if you're interested in a non-English version, please ask us for the
current availablity of different languages. And if you would like to
offer us your translation skills, drop us a line for more information.
Page 6
WHAT IS A SCRIPT FILE?
==========================
A script file is just our name for a special text file that
SCRIPT.EXE, the Universal INSTALL script generator, can understand. Script
files contain special keywords that tell Universal INSTALL what colors to
use, the size of your windows, etc.
The advantage of using a script file is that you get total control
over how your installation will look and operate. Rather than answer a few
questions and create a "canned"-looking install utility, YOU control
every aspect of the installation process. In fact, Universal INSTALL makes
it easy for you to MATCH the look and feel of your own software!
HOW TO CREATE A SCRIPT FILE
===============================
Script files may be written with your favorite text editor or with a
word processor that can save files in a text (ASCII) format. Included with
this Universal INSTALL shareware kit is a sample set of pre-written script
files that are easy to modify for your product.
Try writing a simple script file or modifying one of the sample script
files included in this shareware kit. Keep in mind that registered users
get our Winster utility, which allows you to "paint" your screens, text,
windows, etc. and let Winster write the script for you.
Once you've written a script file, you'll run it through the script
generator (SCRIPT.EXE). This utility will compress your script file and
put your instructions into the binary format INSTALL.EXE understands.
For this shareware kit, the script generator creates an output file called
"SHAREWRE.VER". Registered users pick the name that their script generator
creates.
THE SCRIPT FILE FORMAT
==========================
Script file commands may be capitalized in any way you desire. A
quick glance through our GOODSOFT or SIMPLE script files included in this
kit will give you a good idea of the proper format for a script file. The
format is really not as strict as it looks. When you run your script
through the script generator, the utility will tell you if it doesn't
understand something you have written. The entire process is much like
using a language compiler, but much, much simpler!
Page 7
C R E A T I N G A N D U S I N G W I N D O W S
Creating a "BuildWindow" Section
====================================
To create a window, start a section in your script file as follows.
This type of section uses all the script file commands that are relevant
to windows...
BUILDWINDOW
WindowColor =White
Border =Blue
StartRow =Center
StartColumn =Center
ColumnMargin =1
RowMargin =8
PopUp =No
ShadowType =Big
TopTitle =Welcome!
BottomTitle =Press ENTER to continue...
ENDWINDOW
BORDER Command
==================
What it does....determines a border and border color for a window.
See also........ShadowColor
Usage...........Border =<Blue, Gray, etc...>
Example.........Border =Blue
If this command is used, it tells INSTALL to put a border around the
window in the specified color. The default situation for windows is no
border, so if you want a bordered window, use this command. Otherwise,
leave it out of your window section.
BOTTOMTITLE Command
=======================
What it does...puts a message on the bottom border of a window.
See also.......TopTitle
Usage..........BottomTitle =<text message>
Example........BottomTitle =Press ENTER to continue
The default for a window is no bottom or top titles, so you must use
these commands if you want some messages on the window borders. Note that
the message will be centered on the bottom border. This is a short-cut to
using the Text command for putting some text on the window border. The
text will be displayed with white characters on the border color
background.
Page 8
CLOSEWINDOW Command
=======================
What it does....removes a "pop up" window and restores the screen to
its original appearance.
See also........PopUp
Usage...........CloseWindow
Example.........CloseWindow
This command restores the screen to its original display before the
pop up window was put on the screen.
COLUMNMARGIN Command
========================
What it does....leaves X number of columns as space between a window
border and the interior text.
See also........RowMargin
Usage...........ColumnMargin =<number of columns>
Examples........ColumnMargin =7
This command is useful for keeping the window text from being crammed
up against the border of a window and helps you create a balanced look for
your windows.
POPUP Command
=================
What it does....determines whether a window is a "pop up" window
Usage...........PopUp =<Yes or No>
Example.........PopUp =Yes
A "pop up" window does not overwrite the screen below it, so that when
you restore a window with the CloseWindow command, your screen will look
unchanged. This is useful for error messages or help windows. The default
type of window is not a pop up, so if you want this feature, you must use
the PopUp command.
ROWMARGIN Command
=====================
What it does....leaves X number of rows as space between a window border
and the interior text.
See also........ColumnMargin
Usage...........RowMargin =<number of rows>
Example.........RowMargin =1
This command is useful for keeping the window text from being crammed
up against the border of a window and helps you create a balanced look for
your windows.
Page 9
SHADOWCOLOR Command
=======================
What it does....determines the color of a window.
See also........ShadowType, Border
Usage...........ShadowColor =<White, Blue, etc...>
Example.........ShadowColor =Gray
This command can give different looks for windows placed within other
windows. Experiment with different colors to find an interesting look.
SHADOWTYPE Command
======================
What it does....determines the type of shadow to use for a window.
See also........ShadowColor, Border
Usage...........ShadowType =<None, Big, Small>
Examples........ShadowType =None
ShadowType =Small
The ShadowType command determines the type of shadow to use for the
window. A shadow creates a minor 3-D effect for the window. A Big shadow
uses the backplane characters to create the shadow. This type looks best
for windows displayed directly on the backplane. A Small shadow type looks
best for windows placed within other windows. The default type for a
window is Big.
STARTCOLUMN Command
=======================
What it does....specifies the column on which to start the left edge of
the window.
See also........StartRow
Usage...........StartColumn =<col #> or <Center> or <Window + <col #>>
Examples........StartColumn =5
StartColumn =Center
StartColumn =Window+1
The first example is used when you want to start the window on a
specific column. The second example is a short-cut and tells the script
generator to automatically center the window on the screen. The third
example is useful for placing windows within another window. The example
will start the new window on the previous window's StartColumn plus one
more column. You can see how this will place the window within the
previous window. See the GOODSOFT script for more examples.
Page 10
STARTROW Command
====================
What it does....specifies the row on which to start the top edge of the
window.
See also........StartColumn
Usage...........StartRow =<row #> or <Center> or <Window + <row #>>
Examples........StartRow =2
StartRow =Center
StartRow =Window+2
The first example is used when you want to start the window on a
specific row. The second example is a short-cut and tells the script
generator to automatically center the window on the screen. The third
example is useful for placing windows within another window. The example
will start the new window on the previous window's StartRow plus two
more rows. See the GOODSOFT script for more examples.
TEXT Command
================
What it does....draws text on the screen.
Usage...........Text <color> on <color> <column> <row> = <text>
Example.........Text white on blue 10,15 =Sample text string!
The Text command allows you to place a text string on the screen in a
specified color. This is useful for updating the text of a window after
the window has already been drawn, for example. Note that the row and
column coordinates are based on the top left corner of the screen being
(1,1) and the lower right corner being (80,25).
This command may also be used within a window section. If it is used
in this way, the column and row coordinates will be based on the top, left
corner of the window, instead of this screen. This allows you to move the
window around without having to update your text coordinates.
TOPTITLE Command
====================
What it does....puts a text message on the top border of a window.
See also........BottomTitle
Usage...........TopTitle = <text message>
Example.........TopTitle =Sample Installation Program
The message will be centered in the window and be displayed with white
characters on the border color background. Also see the BottomTitle
command.
Page 11
WINDOWCOLOR Command
=======================
What it does....specifies the color of a window.
See also........ShadowColor, Border
Usage...........WindowColor =<Blue, White, Gray, etc...>
Example.........WindowColor =Gray
This command determines that color of a window. See the Border command
to determine the border color for the window and the ShadowColor command
to specify the shadow color for a window.
Page 12
G E N E R A L S C R E E N C O M M A N D S
BACKPLANE Command
=====================
What it does....defines the color and character used for the screen
background.
See also........ClearPlane, ClearScreen
Usage...........BackPlane <custom color> = <ASCII character>
BackPlane <color> on <color> = <ASCII character>
Examples........BackPlane teal =▒
BackPlane blue on gray =A
The backplane can be used to create a colorful "workspace" for your
installation program. It is not required - if you desire a standard black
background, see the ClearScreen command. Custom colors are color
combinations we have come up with to save you some time (and you might not
have tried)! ASCII characters 176-178 look especially good as backplane
characters.
Possible custom colors are:
Royal (dark blue)
Teal (greenish blue)
Purple (purple)
Orange (orange)
Mint (pastel green)
Sky (bright light blue)
Steel (dark gray blue)
Slate (gray)
BOTTOMBAR Command
=====================
What it does...puts a "status line" on the bottom of the screen.
See also.......TopBar
Usage..........BottomBar <color> on <color> = <text>
Example........BottomBar blue on white =This is a sample line!
A bottom status line may be useful for displaying the names of files
that are being copied, keeping a message such as "Press ESC to quit"
constantly visable, or just to put a border around your screen. The "=" is
optional, and if left out, indicates you don't want any text displayed on
the line (i.e. blank status bar).
CLEARPLANE Command
======================
What it does....clears the backplane.
See also........ClearScreen, BackPlane, TopBar, BottomBar
Usage...........ClearPlane
Example.........ClearPlane
Page 13
ClearPlane will redraw the backplane. This is very useful for getting
rid of windows and text in preparation for the next window. Note that this
command will leave any top or bottom status bars intact. If you want to
erase everything on the screen, use the ClearScreen command.
CLEARSCREEN Command
=======================
What it does....clears the entire screen.
See also........ClearPlane
Usage...........ClearScreen
Example.........ClearScreen
ClearScreen creates an entirely black screen. This is very useful as
the first and last commands in your script.
TEXT Command
================
What it does....draws text on the screen.
Usage...........Text <color> on <color> <column> <row> = <text>
Example.........Text white on blue 10,15 =Sample text string!
The Text command allows you to place a text string on the screen in a
specified color. This is useful for updating the text of a window after
the window has already been drawn, for example. Note that the row and
column coordinates are based on the top left corner of the screen being
(1,1) and the lower right corner being (80,25).
This command may also be used within a window section. If it is used
in this way, the column and row coordinates will be based on the top, left
corner of the window, instead of this screen. This allows you to move the
window around without having to update your text coordinates.
TOPBAR Command
==================
What it does....puts a "status line" at the top of the screen.
See also........BottomBar
Usage...........TopBar <color> on <color> = <text>
Example.........TopBar white on red =Sample Installation Program
A top status line can be very useful for displaying the name of your
product or the name of the installation program. The "=" is optional, and
if left out, indicates you don't want any text displayed on the line (i.e.
blank status bar).
Page 14
G E N E R A L S Y S T E M C O M M A N D S
CHECKDISKSPACE Command
==========================
What it does....Asks INSTALL to make sure there is enough available
space on a disk for the installed software.
Usage...........CheckDiskSpace =[drive letter designation]
Example.........CheckDiskSpace =C:\
Sometimes it is useful to make sure that a user has enough disk
space available to install your software, BEFORE getting deep into the
install process! The CheckDiskSpace command is used for this purpose.
When INSTALL checks for available space and there is not enough space
available, it will display a pop-up error message and recommend that
the user free up some disk space before installing. INSTALL does not
do anything special if there is enough room for the installation.
COLDBOOT Command
====================
What it does....initiates a "cold" reboot of the user's computer.
See also........WarmBoot
Usage...........ColdBoot
Example.........ColdBoot
A "cold" reboot is the same as if the user had just turned on his/her
computer. Most computers check the system memory at this point. For most
installations, a warm reboot will be sufficient, however. It is probably a
good idea to allow the user to decide if they want to reboot the computer.
DISKSPACEREQ Command
======================
What it does....specifies required disk free space for installation.
Usage...........DiskSpaceReq =<amount expressed in K / 1000>
Examples........DiskSpaceReq =2000
DiskSpaceReq =600
This command is used in conjunction with the CheckDiskSpace command
to tell INSTALL the total amount of disk space required for the
installation of your software. The amount of free space specified is
multiplied by 1K (1000 bytes) by INSTALL. So, the first example above
specifies a requirement for 2MB worth of free space. The second example
states that 600K free space is required. See the CheckDiskSpace command
for more information. Due to memory limitations, INSTALL can only check
for free space of 60MB or less.
Page 15
DOSVERSION Command
======================
What it does....checks the user's DOS for a minimum acceptable version.
Usage...........DOSVersion =<version number>
Examples........DOSVersion =5.0
If your product requires a minimum DOS version to run correctly (i.e.
DOS > 3.2), this allows you to stop the installation process and warn the
user before your software has been installed. This command would usually
be one of the first commands in your script file.
If INSTALL determines that the user's DOS is LOWER than the version
you specifiy, the following message will be displayed and INSTALL will
halt....
" Sorry, the minimum DOS version required for this product is X.XX
Please contact your service representative or dealer for help. "
Note: Don't use this command unless DOS versions are important to you.
INSTALL doesn't do any checking unless this command is in your script file.
FINDDISK Command
====================
What it does....searches all the user's disk drives for a disk with the
specified volume label.
Usage...........FindDisk =<Volume Label (a.k.a. Volume ID)>
Example.........FindDisk =INSTALL
When this command is used, INSTALL will search all the user's disk
drives until it finds a disk with the same volume label. If a match is
found, INSTALL returns the drive letter in the $FINDRESULT script
variable. Otherwise, $FINDRESULT is blank.
This command is useful when you want to locate one of your old product
software disks for an update or just want to locate the drive that your
distribution disk is in.
FINDBOOTDRIVE Command
=========================
What it does....locates the user's boot drive and returns the drive
specification in the script variable, $BOOTDRIVE.
Usage...........FindBootDrive
Example.........FindBootDrive
This command will return a string such as "C:\" in the script variable
$BOOTDRIVE. You may then use the result of this command for setting up the
default answer to questions such as...
Page 16
what directory to install to? C:\DEMO
In the example above, $BOOTDRIVE is used in place of the usual text
string. Like all script variables, you may use $BOOTDRIVE anywhere regular
text strings are used in a command.
JUMP Command
================
What it does....skips file execution to the specified procedure name.
Usage...........Jump =<Procedure Name>
or On <Key> Jump =<Procedure Name>
Examples........Jump =Quit to DOS
On ESC Jump =Quit to DOS
On ENTER Jump =Start Installation
Jump is used to branch to different sections of the script file based
on something the user has done. For example, if the user presses ESC to
quit, you might want to jump to a procedure explaining what has been
installed so far. Think of Jump as a GOTO statement. If you use the
On..Jump format of the command, INSTALL will only jump to the procedure if
the user has pressed the specified key. This is most useful after a Wait
command, so that you can branch somewhere if the user presses ESC and
somewhere else if the user presses ENTER.
Note that the procedure name should be capitalized exactly the same as
you capitalized it for the procedure. We did this to make sure that
procedures were not confused with each other. Procedure names follow the
format: [XXXXXX], where XXXXXX is the procedure name. See our example
scripts for more guidance.
KEEPLOGFILE Command
=======================
What it does....tells INSTALL to maintain an installation log file.
Usage...........KeepLogFile =<path and filename>
Example.........KeepLogFile =c:\install.log
This command is used when you want to distribute the REMOVE utility
to your users. By using this command and the REMOVE utility, you are
providing the ability for end-users to "undo" an installation, either
immediately or sometime in the future. Many users seem to really
appreciate the ability to un-install software that they no longer need.
Please see the section on the "Using the Un-install Feature" for more
information.
Page 17
RUNPROGRAM Command
======================
What it does....run a program outside of INSTALL.
Usage...........RunProgram =<program command line>
Example.........RunProgram =pkunzip test.zip
RunProgram =!DOS!chkdsk c:
This command causes INSTALL to run a DOS process and execute the
specified command line, just as if it was typed at the DOS prompt. INSTALL
loses control of the screen at this point, so it's important for you to
make sure that the screen looks the way you want.
- INSTALL will handle any DOS errors that occur when trying to run the
program (such as "File not found"), but it is up to the external program
to handle errors once it has control. This is especially important to
note, because running external programs require a large amount of memory.
Since INSTALL loses control to the external program, out of memory errors
may be ugly (depending on the program, of course!). We recommend using
this feature for smaller-sized programs.
- To run a DOS command, imbed "!DOS!" in your command line string
(example 2 above).
- You must specify the exact path and FULL filename of the program. You
may use the $CURRENTPATH variable to your advantage here. For example,
running the readme program on the install disk: $CURRENTPATH\readme.exe.
- If the external program is one of your own programs, it is possible to
match the installation look to the external program, so that the user will
see a "seamless" installation.
SYSTEMDELAY Command
=======================
What it does....Pauses operation for X seconds.
Usage...........SystemDelay =# of seconds
Example.........SystemDelay =2
Useful for opening screens or slowing down copy file status messages
so the user can see them. The number of seconds is approximate, and will
vary slightly for faster/slower machines.
Page 18
WAIT Command
================
What it does....waits for the user to press a specified set of keys.
Usage...........Wait =<key>, <key>,....
Examples........Wait = Enter, Esc
The wait command is useful when you want a user to "press ENTER to
continue...". The INSTALL program will wait for the user to press one of
the keys you specify. See the Jump command for branching to a different
section of the script file based on which key the user presses.
Possible script file keywords are:
Esc (escape key)
Enter (enter or return key)
Space (space bar)
BackSp (backspace key)
Tab (tab key)
PageUp (PgUp key)
PageDn (PgDn key)
F1 F2 F3 F4 F5 (function keys)
F6 F7 F8 F9 F10 (function keys)
WARMBOOT Command
====================
What it does....initiates a "warm" reboot of the user's computer.
See also........ColdBoot
Usage...........WarmBoot
Example.........WarmBoot
A "warm" reboot is the same as if the user had pressed the
Ctrl+Alt+Del keys. For products such as device drivers, this command can
allow you to install your product automatically without having to instruct
the user to reboot their computer. It is probably a good idea to allow the
user to decide to reboot, however. If you want to do a memory check during
the reboot, see the ColdBoot command.
Page 19
G E T T I N G K E Y B O A R D I N P U T F R O M T H E U S E R
Creating an INPUT section
=============================
This section allows you to get string input from your user. This is
useful for verifying the destination drive or directory with your user,
for example. The format of the input section follows...
INPUT
StartRow = window+9
StartColumn =window+30
Action =Enter, Esc
TextColor =White on Blue
Default =$BOOTDRIVEDEMO
Width =15
ENDINPUT
ACTION Command
==================
What it does....specifies what keys the user may press during data entry.
Usage...........Action =<key keyword>, <key keyword>, etc...
Example.........Action =ESC, F1
Other than the standard insert, delete, and arrow movement commands,
INSTALL needs to know what other keys you want to allow the user to press.
When you define extra keys with this command, the jump command may be
used to branch to different sections of the script depending on which key
the user presses. This could be useful for providing on-line help during
data entry when the user presses F1, for example. See our GOODSOFT script
for a real example.
DEFAULT Command
===================
What it does....the default text string for an Input section.
Usage...........Default =<text string>
Example.........Default =C:\DEMO
If this command is used, INSTALL will display the specified string as
the initial string in the data entry field. The user may simply press the
ENTER key to accept the default choice. Or, the user may modify the
default string. Use this command for presenting the user with your
preferred choice. If this command is not used in the Input section,
INSTALL will simply display a blank field.
Page 20
STARTCOLUMN Command
=======================
What it does....specifies the column on which to start the left edge of
the window.
See also........StartRow
Usage...........StartColumn =<col #> or <Center> or <Window + <col #>>
Examples........StartColumn =5
StartColumn =Center
StartColumn =Window+1
The first example is used when you want to start the window on a
specific column. The second example is a short-cut and tells the script
generator to automatically center the window on the screen. The third
example is useful for placing windows within another window. This example
will start the new window on the previous window's StartColumn plus one
more column. You can see how this will place the window within the
previous window. See the GOODSOFT script for more examples.
STARTROW Command
====================
What it does....specifies the row on which to start the top edge of the
window.
See also........StartColumn
Usage...........StartRow =<row #> or <Center> or <Window + <row #>>
Examples........StartRow =2
StartRow =Center
StartRow =Window+2
The first example is used when you want to start the window on a
specific row. The second example is a short-cut and tells the script
generator to automatically center the window on the screen. The third
example is useful for placing windows within another window. This example
will start the new window on the previous window's StartRow plus two more
rows. See the GOODSOFT script for more examples.
TEXTCOLOR Command
=====================
What it does....specifies input field foreground and background colors.
Usage...........TextColor =[color] ON [color]
Example.........StartRow =White on Blue
This command determines what colors INSTALL uses for displaying the
input field.
Page 21
WIDTH Command
=================
What it does....specifies the width of data entry for an Input section.
Usage...........Width =<# of columns>
Example.........Width =10
The width of the user's data entry will determine the maximum amount
of characters the user may enter. For example, if you were asking the user
for a filename, you would probably want to keep the width at 12, the DOS
limit for filenames.
Page 22
U S I N G S C R I P T F I L E V A R I A B L E S
SCRIPT VARIABLES
====================
Script variables may be used in a script file in place or in
conjunction with any command that uses a text string. When INSTALL is
running, it will keep the variables updated on current operations such as
the current directory, the user's boot disk, etc. This can be very useful
for adding some "smarts" to your installation. Instead of asking the user
to type in his/her boot drive letter, you could have INSTALL automatically
provide a default response, for example.
$AUTOEXECRESULT - The first line added to AUTOEXEC.BAT as a
result of a ModifyAutoExec section.
$BOOTDRIVE - The user's boot drive and path (i.e. "C:\").
$BUTTONRESULT - The result (as specified with the Result
command) of the button selected by the user.
$CONFIGRESULT - The first line added to CONFIG.SYS as a
result of a ModifyConfig section.
$CURRENTDIR - The current directory name/path.
$CURRENTDRIVE - The current disk drive letter.
$CURRENTPATH - The current disk drive and directory path.
$INPUTRESULT - Result of an input section.
$FINDRESULT - Drive letter of the most recent disk found
with the FindDisk command.
Page 23
U S I N G B U T T O N S
Creating a BUTTONS Section
==============================
Buttons provide another means of getting input from the user. Rather
than having the user type in information, you can present him/her with
several choices. The user then just selects a choice. We like to use
buttons to get such information as "install package A" or "package B"?
Defining a button is much like defining a window, as follows...
BUTTONS
RowMargin =1
ColumnMargin =4
StartRow =window+7
StartCol =window+9
ButtonOnColor =White on Blue
ButtonOffColor =Black on Gray
Travel =Horizontal
Distance =8
Message =A:
Result =A:\
GoButton =Drive A
Message =B:
Result =B:\
GoButton =Drive B
ENDBUTTONS
BUTTONOFFCOLOR Command
==========================
What it does...Foreground and background color of a button when it is not
highlighted.
See also.......ButtonOnColor
Usage..........ButtonOffColor =<color> on <color>
Example........ButtonOffColor =Gray on Blue
This command determines how a button will look when it is not
currently highlighted by the user. When a button is highlighted, the
ButtonOnColor command determines how it will look. Run the sample
installation for a real example.
BUTTONONCOLOR Command
=========================
What it does...Foreground and background color of a button when it is
highlighted.
See also.......ButtonOffColor
Usage..........ButtonOnColor =<color> on <color>
Example........ButtonOnColor =White on Blue
Page 24
This command determines how a button will look when it is currently
highlighted by the user. When a button is highlighted and the user presses
the ENTER key, the user is "choosing" the highlighted button.
COLUMNMARGIN Command
========================
What it does....leaves X number of columns as space between a button
border and the interior text.
See also........RowMargin
Usage...........ColumnMargin =<number of columns>
Examples........ColumnMargin =7
This command is useful for keeping the button text from being crammed
up against the border of the button.
ROWMARGIN Command
=====================
What it does....leaves X number of rows as space between a button border
and the interior text.
See also........ColumnMargin
Usage...........RowMargin =<number of rows>
Example.........RowMargin =1
This command is useful for keeping the button text from being crammed
up against the border of the button.
DISTANCE Command
====================
What it does....tells INSTALL how much space to leave between buttons
See also........Travel
Usage...........Distance =<# of columns> or <# of rows>
Example.........Distance =10
This command is interrelated with the Travel command. If you specify
Vertical travel, INSTALL assumes that the Distance you give is in rows.
Conversely, Horizontal travel means that the distance between buttons will
be in columns. In either case, this is the amount of space INSTALL puts
between buttons when it displays them on-screen.
Page 25
MESSAGE Command
===================
What it does....defines the text displayed on a button.
See also........Result
Usage...........Message =<text message>
Example.........Message =Choose me!
The message of a button is what will be shown as a choice for the
user. When the user actually chooses a button, the value specified with
the Result command will be used by INSTALL. We did this to allow you to
use more descriptive text for your buttons, while still getting the
information you need from the user. For example...
Message =Disk Drive A
Result =A:\
Each time you use a Message command in a button section, you are
creating a new button # that can have a corresponding Result command
following it.
RESULT Command
==================
What it does....specifies the result of a button.
See also........Message
Usage...........Result =<text string>
Examples........Result =A:\
Result =B:\
This command is used to determine what value will be returned by
INSTALL when the user chooses a button. You may use the a string in your
script that corresponds to which button is selected. The button result is
returned by INSTALL in the $BUTTONRESULT script variable. You may use this
variable anywhere you would use a normal text string. This command is
optional.
GOBUTTON Command
==================
What it does....jumps to a procedure if the button is selected.
Usage...........GoButton =<procedure name>
Examples........GoButton =Quit
This command is useful when you want to branch to a different dection
of your script depending on which button your user selects. An example
would be asking the user which package to install, and then JUMPing to the
appropriate file copy section. The GoButton command should be used in the
format shown in the Button section example. As shown in the example, the
first GoButton command happens if the first button is selected, the
second GoButton command happens if the second button is selected, and so
on. This command is optional.
Page 26
STARTCOLUMN Command
=======================
What it does....specifies the column on which to start the left edge of
the button.
See also........StartRow
Usage...........StartColumn =<col #> or <Center> or <Window + <col #>>
Examples........StartColumn =5
StartColumn =Center
StartColumn =Window+1
The first example is used when you want to start the button on a
specific column. The second example is a short-cut and tells the script
generator to automatically center the button on the screen. The third
example is useful for placing buttons within another window. This example
will start the button on the previous window's StartColumn plus one
more column. You can see how this will place the button within the
previous window. See the GOODSOFT script for a working example.
Page 27
STARTROW Command
====================
What it does....specifies the row on which to start the top edge of the
button.
See also........StartColumn
Usage...........StartRow =<row #> or <Center> or <Window + <row #>>
Examples........StartRow =2
StartRow =Center
StartRow =Window+2
The first example is used when you want to start the button on a
specific row. The second example is a short-cut and tells the script
generator to automatically center the button on the screen. The third
example is useful for placing buttons within another window. This example
will start the button on the previous window's StartRow plus two more
rows. See the GOODSOFT script for more examples.
TRAVEL Command
==================
What it does....tells INSTALL what keys the user may press to move
through the button choices.
See also........Distance
Usage...........Travel = <Horizontal> OR <Vertical>
Examples........Travel =Horizontal
Travel =Vertical
This command is used by the script generator to determine what keys
the user will be allowed to press to highlight the different button
choices. For example, if you specify Vertical travel INSTALL assumes that
the buttons are arranged vertically, and lets the user press the UP and
DOWN arrow keys to choose. Alternatively, Horizontal travel indicates that
the buttons are arranged horizontally and INSTALL lets the user press the
left and right arrow keys. There is no default, so you must use this
command.
Page 28
C O P Y I N G F I L E S
Creating a STARTCOPY Section
================================
The StartCopy command is used to begin a file copying section of a
script file. This section is necessary before you use the DiskLabel,
SourceDisk, DestDisk, DestDirectory, etc. copying commands. Every
StartCopy command must eventually be followed by an EndCopy command, as in
the example below...
STARTCOPY
DiskLabel =SAMPLE
SourceDisk =$BUTTONRESULT
DestDisk =$BOOTDRIVE
DestDirecoty =DEMO
File =DEMO.EXE
File =DEMO.DAT
ENDCOPY
Note that there are several tricks to keep in mind when using the file
copying script commands. One: each copy section can only copy a maximum of
40 files at one time. If you need to copy more, just start another copy
section. Two: If you have multiple distribution disks, just prompt the
user to insert the next disk and then start a new copy section for that
disk.
DESTPATH Command
====================
What it does....specifies which disk and directory to copy files to.
See also........DiskLabel, SourceDisk, SourcePath, CopyFile, StatusRow,
StatusColumn, StatusLineFG, StatusLineBG
Usage...........DestPath =<drive letter and directory name>
Example.........DestPath =C:\DEMO
This command will tell INSTALL where to copy your files to. If the
destination disk does not have a directory name as specified, INSTALL will
create a new directory. You may have only one directory level specified
with the DestDirectory command, but copying files to a multiple directory
structure is easy - just use more copy sections. (A script example is
included with the full Universal INSTALL package).
DISKLABEL Command
=====================
What it does....checks for the expected disk during the file copying
process.
Usage...........DiskLabel =<DOS volume ID>
Examples........DiskLabel =DEMODISK
Page 29
DiskLabel is used to make sure that the disk the user has inserted
into the disk drive is the disk that contains the files you are about to
copy. Think of this as "verifying" that the correct distribution disk has
been inserted. This command is especially useful if the user has multiple
distribution disks to choose from.
If INSTALL does not find a match between the disk the user has
inserted and the disk specified by this command, an error message will be
displayed and INSTALL will instruct the user to "try again" or quit the
installation process.
- This command is not required, but is recommended to avoid confusion
for the user during multiple disk installations.
- A volume ID consists of up to 11 characters.
- You can set the volume ID of your disks using the DOS LABEL command.
COPYFILE Command
====================
What it does....specifies a file for INSTALL to copy.
See also........DestDisk, DestDirectory, SourceDisk
Usage...........CopyFile <path and name of file>
Example.........CopyFile =FILE.EXE
This command is used to tell INSTALL what files you want copied from
your distribution disk. To copy a bunch of files, just use a CopyFile
command for each one. Each file name and path should be no longer than 40
characters and you can only copy up to 40 files with each copy section.
If you need to copy more than 40 files, just use another copy section.
SOURCEDISK Command
======================
What it does....specifies where to locate files for a copy.
See also........DiskLabel, DestDisk, DestDirectory, File, StatusRow,
StatusColumn, StatusLineFG, StatusLineBG
Usage...........SourceDisk =<Drive letter>
Examples........SourceDisk =A:\
SourceDisk =$BUTTONRESULT
SourceDisk is used to tell INSTALL where to find files that you want
to copy somewhere. Note that instead of directly specifying the drive
letter, you can use a script variable such as $BOOTDRIVE or $BUTTONRESULT.
This is useful for allowing your user to choose the drive where your
software disks are located.
Page 30
SOURCEPATH Command
======================
What it does....specifies where to locate files for a copy.
See also........DiskLabel, SourceDisk
Usage...........SourcePath =<directory\directory\...>
Examples........SourcePath =DEMO\EXAMPLES
SourcePath =DEMO
SourcePath is used to tell INSTALL where to find files that you want
to copy somewhere. Use this command along with the SourceDisk command to
tell INSTALL where to find files on your distribution disk.
STATUSLINEBG Command
========================
What it does....specifies the background color for a copying status
message.
See also........DiskLabel, SourceDisk, DestDisk, DestDirectory,
StatusRow, StatusColumn, StatusLineFG, File
Usage...........StatusLineBG =<Blue, Gray, White, etc...>
Example.........StatusLineBG =Blue
Please see the StatusLineFG command for a more detailed description.
STATUSLINEFG Command
========================
What it does....specifies the foreground color for a copying status
message.
See also........DiskLabel, SourceDisk, DestDisk, DestDirectory,
EndCopy, StatusRow, StatusColumn, StatusLineBG, File
Usage...........StatusLineFG =<Blue, Gray, White, etc...>
Example.........StatusLineFG =White
This command will determine the forground color of a copying status
message that INSTALL displays. Specifying the colors of the message allow
you to match any existing windows or text you have on the screen.
STATUSCOLUMN Command
========================
What it does....column (or X) coordinate for a "now copying file: " type
of status message.
See also........DiskLabel, SourceDisk, DestDisk, DestDirectory,
StatusRow, StatusLineFG, StatusLineBG, File
Usage...........StatusColumn =<Screen column number>
Example.........StatusRolumn =10
Please see the StatusRow command for a more detailed description.
Page 31
STATUSROW Command
=====================
What it does....row (or Y) coordinate for a "now copying file: " type of
status message.
See also........DiskLabel, SourceDisk, DestDisk, StatusColumn,
StatusLineFG, StatusLineBG, File
Usage...........StatusRow =<Screen row number>
Example.........StatusRow =10
The StatusRow command, when used with the other StatusXXX commands,
allows you to keep your user up to date about which file is currently
being copied. INSTALL needs to know the row and column coordinate, as well
as the colors you wish to use for the message. The message itself consists
of the filename (with extension) in capital letters. You should plan for a
maximum of 40 characters to be displayed if you use the copy status
message feature.
Page 32
M O D I F Y I N G C O N F I G . S Y S
Creating a MODIFYCONFIG Section
===================================
This section tells INSTALL how you want to change the user's
CONFIG.SYS file. You can add a line to the file, REM (comment out) a line,
and add a line with CPU-dependent parameters. The format for this section
follows...
MODIFYCONFIG
SaveOriginal =config.old
AddLine =REM device=sample.sys
FindString =device
Parameters
8088 = /PC-XT
80286 = /PC-AT
80386 = /80386
80486 = /80486
EndParameters
ENDCONFIG
ADDLINE Command
===================
What it does....adds a line to the user's CONFIG.SYS or AUTOEXEC.BAT
file.
Usage...........AddLine =<text string>
Example.........AddLine =echo Have a nice day!
This command will add a line to the CONFIG.SYS file when it is located
in a ModifyConfig script section, or add a line to the AUTOEXEC.BAT file
when placed within a ModifyAutoExec section. For CONFIG.SYS: The point in
the file where the new line is inserted depends on if you use a FindString
command. See the FindString command for more information.
For AUTOEXEC.BAT: AddLine always adds lines to the end of the file.
- Note that you may use more than one AddLine command to add multiple
lines to the user's file.
FINDSTRING Command
======================
What it does....inserts an AddLine line at the point in the CONFIG.SYS
file where the specified string is found.
Usage...........FindString =<text string>
Example.........FindString =device
Page 33
In the example above, FindString will search the user's CONFIG.SYS
file for any lines containing "device". If a match is found, lines added
with the AddLine command will be inserted at the point where a FindString
match was made. This is useful for ensuring that your product is the first
device driver in the file, as our example would do. If no match is found,
INSTALL will insert all lin+es at the end of the file. See our GOODSOFT
script for a real example.
PARAMETERS Command
======================
What it does....lets you add product command line switches to any added
CONFIG.SYS lines based on the user's CPU type.
Usage...........See below
Example.........See Below
The format for the Parameters command follows...
PARAMETERS
8088 = /PC-XT
80286 = /PC-AT
80386 = /80386
80486 = /80486
ENDPARAMETERS
This example tells INSTALL to run a system check and determine what
type of CPU the user's computer has. If the user has an 8088/86 CPU,
INSTALL will append "/PC-XT" to any lines added to CONFIG.SYS with the
AddLine command. If the user has a '286 type of CPU, INSTALL will append
"/PC-AT" to any AddLines (and so on).
This feature is primarily useful for device driver products, where the
device driver needs software switches to run at different speeds or with
different features.
REMARKSTRING Command
========================
What it does...."comments out" a line in CONFIG.SYS.
Usage...........RemarkString =<search text>
Example.........RemarkString =Old product
When used in a ModifyConfig section, this command allows you to
disable lines in the user's CONFIG.SYS that might conflict with your
product without actually removing the lines. Examples might be REMarking a
"Files=10" statement and adding a "Files=20" line, or disabling a
reference to an older version of your product.
Page 34
SAVEORIGINAL Command
========================
What it does....allows you to save a copy of the user's CONFIG.SYS or
AUTOEXEC.BAT file before you make any modifications.
Usage...........SaveOriginal =<file name>
Example.........SaveOriginal =CONFIG.OLD
This command tells INSTALL to make a copy of the user's CONFIG.SYS or
AUTOEXEC.BAT file before any changes are made. This can help you assure
the customer that any changes to their setup can be reversed.
Page 35
M O D I F Y I N G A U T O E X E C . B A T
Creating a MODIFYAUTOEXEC Section
=====================================
This section tells INSTALL how you want to modify the user's AUTOEXEC.BAT
file. The format for this section is as follows...
MODIFYAUTOEXEC
SaveOriginal =autoexec.old
AddLine =echo Have a nice day from The GoodSoft Co!
AddPath =c:\demo
ENDAUTOEXEC
ADDLINE Command
===================
What it does....adds a line to the user's CONFIG.SYS or AUTOEXEC.BAT
file.
Usage...........AddLine =<text string>
Example.........AddLine =echo Have a nice day!
This command will add a line to the CONFIG.SYS file when it is located
in a ModifyConfig script section, or add a line to the AUTOEXEC.BAT file
when placed within a ModifyAutoExec section. For CONFIG.SYS: The point in
the file where the new line is inserted depends on if you use a FindString
command. See the FindString command for more information.
For AUTOEXEC.BAT: AddLine always adds lines to the end of the file.
- Note that you may use more than one AddLine command to add multiple
lines to the user's file.
ADDPATH Command
===================
What it does....updates, modifies, or adds to the user's PATH statement
in AUTOEXEC.BAT.
Usage...........AddPath =<text string>
Example.........AddPath =c:\demo
When you use this command, INSTALL will search the existing path for
a similar or matching path in AUTOEXEC.BAT. A "similar" path is one where
only the drive letter is different. A matching path is the exact same
string as you specified. If a similar path is found, INSTALL will update
the drive letter. If a matching path is found, INSTALL will not make any
modifications. If NO path or no matching path is found, INSTALL will add a
PATH statement or add your path to the end of the existing PATH
statement.
Page 36
SAVEORIGINAL Command
========================
What it does....allows you to save a copy of the user's CONFIG.SYS or
AUTOEXEC.BAT file before you make any modifications.
Usage...........SaveOriginal =<file name>
Example.........SaveOriginal =CONFIG.OLD
SaveOriginal =AUTOEXEC.OLD
This command tells INSTALL to make a copy of the user's CONFIG.SYS or
AUTOEXEC.BAT file before any changes are made. This can help you assure
the customer that any changes to their setup can be reversed.
Page 37
U T I L I Z I N G T H E U N - I N S T A L L F E A T U R E
How "un-install" works
==========================
Universal INSTALL has a useful feature that many end-users really
appreciate: the ability to "undo" an installation. During an installation,
INSTALL can be instructed to maintain an installation "log file". This
file contains all the crucial operations performed by INSTALL, such as
creating directories, copying files, and modifying CONFIG/AUTOEXEC.
Once this log file is created, the installation process may be
"undone" by the user through running the REMOVE.EXE utility. This program
simply reads the installation log file and reverses the process.
Creating an installation log file
=====================================
Use the KEEPLOGFILE command (described under General System Commands)
to instruct INSTALL to maintain a log of the installation. For example,
the following command would tell INSTALL to create an INSTALL.LOG file
in the current directory...
KeepLogFile =INSTALL.LOG
Using the REMOVE Utility
============================
To "undo" an install, all your user has to do is type the following:
REMOVE [install log filename]
to match KeepLogFile example above: REMOVE install.log
"REMOVE" is just what we called the program. You are free to rename the
file anything you want. If you do rename the file, you'll probably want
to rename REMOVE's data file as well. This can be accomplished via
programs that let you edit an .EXE file, such as The Norton Utilities.
Simply search for "REMOVE .DAT" and replace the text. NOTE: Editing
.EXE files is NOT recommended, and The GoodSoft Co. assumes absolutely
NO responsibility for any consequences of doing this.
REMOVE Utility Data File (REMOVE.DAT)
=========================================
The remove utility's on-screen messages may be customized through
the program's data file, REMOVE.DAT. This file contains the text messages
REMOVE displays before beginning the un-install process. To customize
REMOVE, simply edit this file to your liking. Note: Only the first 11
lines of text contained in this file are used by REMOVE, and text lines
will be truncated to 78 characters, so plan accordingly!
Page 38
Tips on Using REMOVE
=========================
- REMOVE will only "undo" something that was done in the log file. This
means that if your users have created new files in your directories,
these files will NOT be removed. If there are still files in a directory
that are not yours, the directory will not be removed either. We do
recommend that you warn your users that any configuration changes made
to your software (e.g. color changes, etc.) will, of course, be lost.
- Be sure to specify in your documentation what filename the user needs
to specify when running REMOVE. Also, if the file is created in a
place other than the install disk, you might want to tell the user how
to look for the file.
- Keep in mind that if you are using an installation log file, INSTALL
will be accessing this file throughout the installation. For installs
spanning several disks, you will not want INSTALL to create the log
file on the first disk, for example! If you do this, and INSTALL is
unable to update the file when it needs to, the program will stop
trying. While you'll end up with only a partial log file, at least
your user won't see a bunch of error messages. This outcome seemed to
be the least obtrusive method during our testing with end-users.
Page 39