Dec 222017
 
Customized Visual Basic Setup1.mak replacement. Adds many features Microsoft forgot.
File VINST8.ZIP from The Programmer’s Corner in
Category BASIC Language
Customized Visual Basic Setup1.mak replacement. Adds many features Microsoft forgot.
File Name File Size Zip Size Zip Type
3D_DRAW.BAS 1373 752 deflated
CHKLIST.MS 54 53 deflated
COMMON.BAS 37423 15143 deflated
CREATEDI.FRM 2336 709 deflated
DEST_DIR.FRM 24272 4558 deflated
DUP_ICON.FRM 4749 933 deflated
FADE.BAS 2440 778 deflated
FEXISTS.FRM 8949 1734 deflated
HELPLOCA.FRM 2983 848 deflated
ICONDEL.TXT 7105 1769 deflated
MESSAGE.FRM 1302 505 deflated
MYPROG.HLP 1000 18 deflated
OPTION.FRM 3823 917 deflated
OPTION2.FRM 4321 991 deflated
PATH.FRM 6326 1537 deflated
PATH.FRX 770 123 deflated
PICKGROU.FRM 3076 999 deflated
PROGGRP.TXT 1849 616 deflated
README.TXT 18011 6364 deflated
README.WRI 1024 414 deflated
RENAME_F.FRM 3537 1010 deflated
SETUP.LST 49 37 deflated
SETUP1.BAS 47139 9002 deflated
SETUP1.EXE 91757 32078 deflated
SETUP1.EX_ 41747 40353 deflated
SETUP1.FRM 13913 3452 deflated
SETUP1.FRX 770 270 deflated
SETUP1.GLB 12017 3031 deflated
SETUP1.MAK 331 209 deflated
SOMEDLL.DLL 500 13 deflated
STARTUP.INI 6187 2165 deflated
STATUS.FRM 3324 745 deflated
SYSTEM.SCR 55 44 deflated
TEST1.EXE 400 13 deflated
TEST2.EXE 500 13 deflated
TEST3.EXE 600 15 deflated
TEST4.EXE 300 11 deflated
TEST5.EXE 200 11 deflated
TPCREAD.ME 199 165 deflated
UN.TXT 55 54 deflated
UNINSTAL.EXE 20792 8346 deflated
UNINSTAL.WRI 1664 845 deflated
VERINFO.BAS 3579 1074 deflated
VINST7.ZIP 67999 63740 deflated
WD1 0 0 stored
WIN.SCR 64 48 deflated

Download File VINST8.ZIP Here

Contents of the README.WRI file


1BMy Program Title, Version 1.01
April 5, 1992

This is where you would put current information, cautions, etc for the user to read at the end of the installation (ie, a typical readme file).
vBrBBDf=/2!898(Drive/Directory
DefaultserID


-The Import Drive/Directory is the default location of the files you download from the mainf0Couriere Spreadsheet Drive/Directory is the default location of your Excel spreadsheet files.

-The Default Extensi


Contents of the README.TXT file


1BMy Program Title, Version 1.01
April 5, 1992

This is where you would put current information, cautions, etc for the user to read at the end of the installation (ie, a typical readme file).
vBrBBDf=/2!898(Drive/Directory
DefaultserID


-The Import Drive/Directory is the default location of the files you download from the mainf0Couriere Spreadsheet Drive/Directory is the default location of your Excel spreadsheet files.

-The Default ExtensiModified Setup1

by L.J. Johnson (CIS 70700,1334), Slightly Tilted Software

Original mods on 04/12/92
modified on 04/17/92 by L.J. Johnson
modified on 06/07/92 by L.J. Johnson
modified on 07/20/92 by L.J. Johnson 'VINST4.ZIP
modified on 12/15/92 by L.J. Johnson 'VINST6.ZIP
(for VB version 2.0)
modified on 12/30/92 by L.J. Johnson 'VINST7.ZIP
modified on 03/30/93 by Judy Summers 'VINST8.ZIP

The Setup program that comes with the Microsoft Professional Toolkit for
Visual Basic is a nice program, but lacks some features which I needed for
corporate installations. The one that comes with VB 2.0 has a couple of neat
new features, but doesn't really improve on the basic design. I have
modified this program to do the things I needed, and hopefully someone else
will also find these modifications useful.

The concept is that, once you get the colors, heading sizes/fonts, etc, to
your liking, you should not have to modify the source code in order to
install another program (unless you want to do something 'special'). In
other words, the modifications make Setup1 data-driven.

The modifications in VBINST8 are designed to make removing the installed files
as easy as it was to install them. SETUP1 now creates an .INI file containing
the names of the files, directories, icons, and program manager group that did
not exist prior to installation. Included in the package is a program UNINSTAL.EXE
that reads the created .INI file and removes the installed items. See the
UNINSTAL.WRI file for more information.

The two files you will need to modify to install your programs are SETUP.LST
and STARTUP.INI.



; Note that in previous versions, if you had a file called Read_Me.WRI
; (which would automatically show at end of the installation), it
; must now be called Readme.WRI.

; ---------------------------- Start of INI ------------------------------
; - The Program Title is used in many screen on the installation.
; - The Main Title is only used in the 24-point title screen.
; - The Default Drive and Directory is the default location to install the
; "other" files -- ie, your program, data, ini, etc files that don't go
; under Windows.
; - The Icon Name is the title of the icon(s) you will produce.
; - The Group Name is the name of the group you will create **IF** you
; choose to create a new group.
; - The Group Title is the title at the top of the new group.
; - The EXE Name is the name of the main executable program used to
; construct the Icon.
; - If Allow Directroy Change is anything but FALSE then the user will be
; allowed to change the install directory.
;
; NOTE: Both the Icon Name and Exe Name can contain multiple items. They
; should each contain the same number of items separated by an ASCII
; 124 (vertical line). This enables you to install multiple icons
; into a group! In this case, the title of a NEW group would be:
; TEST1 ICON, and the name of the group would be: MYPROG.GRP.
;
; NOTE: The Default Directory should be be the same as the *Default listed
; later in this INI file.
;
; NOTE: The numbers in front of the Exe Name refers to the destination
; directories listed later in this INI file. If it is *2*, then it
; refers to [Dest2].
;
; NOTE: If the Exe Name is blank (or commented out), then *NO* icons will
; be created!
; ------------------------------------------------------------------------

[Startup]
Program Title=This Title is Used Many Places
Main Title=This is the 24-point Title
Default Drive=C:
Default Directory=c:\Insurexl\
Icon Name=Test1 Icon|Test2 Icon|Test3 Icon|Test4 Icon|Test5 Icon
Group Name=Testing
Exe Name=*1*Test1.EXE|*1*Test2.EXE|*2*Test3.EXE|*3*Test4.EXE|*4*Test5.EXE
Allow Directory Change=TRUE


; ------------------------------------------------------------------------
; You can have up to 99 destination directories. Under [Destinations], the
; NumDest=xx gives the number of directories. The entries Des01= "" to
; Destxx= "" give the actual directories. Note that these 99 directories
; do not include the directories for Windows, Windows/System, and the HELP
; files.
;
; Under [Destinations], each entry has 4 sections. The first is the
; directory itself. *Default is the default directory picked by the user.
; *Default*Test2 would be the TEST subdirectory under the default directory.
; If you use either *Default or *Default*, the second entry should be
; "dependent" -- ie, it is dependent upon the selection for the default
; directory. (Otherwise, it can be any text string -- I used "notdependent"
; for clarity). The 3rd item is the title listed when the user gets a chance
; to change the directories. It is limited to 16 characters. The final
; section if either GREY or NOGREY. If it it GREY, then the option for
; not installing a directory is removed -- ie, the files in that directory

; WILL be installed. Normally Dest01 will be GREYed (that being your main
; destination directory).
;
; For each of the directories, [Win], [Sys], [Help], [Dest1], etc., there is
; an entry NumFiles=x which gives the number of files in that directory.
; There is also an entry ???01=_______|_____ where the first part of the entry
; gives the file name, and the second part (after the vertical bar) gives
; the actual size (in bytes) of the uncompressed file. This would not be
; necessary if Microsoft stored the expanded file size in the compressed file.
;
; [HELP] is a special case, with an extra item CHOICE. If CHOICE=GREY, then
; the option for not installing a directory is removed -- ie, the files in
; that directroy WILL be installed (as in FILExx above).
;
; Note that there is **NO** spaces within the lines, and that the elements
; are separated by the bar character (ASCII 124)
;
; NOTE: It is ***CRITICAL*** that the Dest1= under [Destinations] is the
; *Default
; ------------------------------------------------------------------------

[Destinations]
NumDest=13
Dest01=*Default|dependent|Test Application|GREY
Dest02=c:\excel\xlstart\|notdependent|Excel start|GREY
Dest03=d:\test\|notdependent|Another dir|NOGREY
Dest04=*Default*Test1|dependent|Test1 sub|NOGREY
Dest05=*Default*Test2|dependent|Test2 sub|NOGREY
Dest06=*Default*Test3|dependent|Test3 sub|NOGREY
Dest07=*Default*Test4|dependent|Test4 sub|NOGREY
Dest08=*Default*Test5|dependent|Test5 sub|GREY
Dest09=*Default*Test6|dependent|Test6 sub|NOGREY
Dest10=*Default*Test7|dependent|Test7 sub||NOGREY
Dest11=*Default*Test8|dependent|Test8 sub|GREY
Dest12=*Default*Test9|dependent|Test9 sub|NOGREY
Dest13=*Default*Test10|dependent|Test10 sub||NOGREY

[Win]
NumFiles=1
Win01=MyProg.HLP|1000

[Sys]
NumFiles=3
Sys01=SomeDLL.DLL|500
Sys02=DDEML.DL_|38400
Sys03=COMMDLG.DL_|89248

[Help]
NumFiles=1
Choice=GREY
Help01=MyProg.HLP|2000

[Dest01]
NumFiles=3
File01=Test1.EXE|400
File02=Test2.EXE|500
File03=Readme.WRI|1024

[Dest02]
NumFiles=1
File01=Test3.EXE|600

[Dest03]
NumFiles=1
File01=Test4.EXE|300

[Dest04]
NumFiles=1
File01=Test5.EXE|200

[Dest05]
NumFiles=1
File01=Test3.EXE|600

[Dest06]
NumFiles=1
File01=Test4.EXE|300

[Dest07]
NumFiles=1
File01=Test5.EXE|200

[Dest08]
NumFiles=1
File01=Test3.EXE|600

[Dest09]
NumFiles=1
File01=Test4.EXE|300

[Dest10]
NumFiles=1
File01=Test5.EXE|200

[Dest11]
NumFiles=1
File01=Test3.EXE|600

[Dest12]
NumFiles=1
File01=Test4.EXE|300

[Dest13]
NumFiles=1
File01=Test5.EXE|200

; ------------------------------ End of INI ------------------------------




Note that you **do** have to list the file sizes, since Microsoft chose not
to store the information on the original file sizes in the compressed file.

Other improvements include:

- The user is allowed to installed in either a new program group (the
name given in Startup.INI), or a program group the user already has.
The program defaults to a new group
- The bar graph uses the techniques in the Waite's Group Visual Basic
How-To (a highly recommended group) to change the color of the
percentage figure from black to white as the bar crosses the percentage.
- The bar graph does not get to 100% until the last file. You normally
see this if you have a number of large files in the middle of the
install, and several small files at the end of the install. Now,
the figure will remain at 99% until the last file is copied.
- I also used some code from Visual Basic How-To to get the 3-d look
on some of the controls
- The bar graph is always updated, whether the file is copied, skipped,
or skipped due to an error.
- You are given descriptive error messages if you get an error while
copying files.
- There is a an option to do a Full Installation (good for possible
corrupted files) or Update Files.
- The program automatically subtracts out sizes of files when they
exist on the destination drive. I wish more programs would do this!
- If a file called Readme.WRI exists on the installation drive, then
this file is copied to the destination, and at the end of the program
the file is brought up under Windows Write. The file is in Write
format.


04/17/92
- Fixed a couple of bugs in the original modifications. The main problems
were not checking for not having at least one file in each of the
groups (ie, Destination, Windows, Windows\System) -- the program would
crash. This has been fixed. Also, I was comparing sTimeValue to
dDateValue. It should have been dTimeValue. This has also been fixed.
- Now program allows you to create multiple icons in whatever group you
decide to install them in (new group, or one of the current groups).
This is controlled by the Startup.INI (see example above). Note that,
if you have multiple Icon Names, you **must** have the same number of
Exe Names. There is no error-checking at this point -- I'll add that
at the next revision, or you can do it yourself.

06/07/92
- Moved all the subs in Setup1.FRM to COMMON.BAS. Also, most of the very
long Setup1.Form_Load has been moved to subs in COMMON.BAS. Doesn't
necessarily make it run better, but it is better coding practice.
- Allow up to 9 installation subdirectories, not including the WINDOWS and
the WINDOWS/SYSTEM subdirectory. Program checks for file space
available on EACH drive that you are installing files to.
- Allows any of the 9 install directories to be subdirectories of the
install directory, even if the user changes the default install
directory.
- Allows you to choose (via STARTUP.INI) whether the user will be allowed
to change the default directory.
- If you have the files WIN.SCR or SYSTEM.SCR, the lines in those files
will be added to appropriate INI files, or modify existing lines under
the application headings, after first asking the user if he will allow
the modification to proceed. You must make the .SCR format in the exact
same way as they are to appear in the INI file -- ie,
[Test1]
Item1=Item #1
Item2=Item #2

[Test2]
Item1=Test2 Item #1
.
.
etc.

07/20/92
- Doesn't always assume that the install needs to create an icon/group.
If the Exe Name is blank (or commented out) in STARTUP.INI, then no
icon/group will be created.
- If the install is an update (rather than a full install), then no icon/
group will be created.
- Doesn't use gGroupTitle$ anymore....


12/15/92
- The program checks the file version as well as the time/date/size of
the files.
- On a full install, program shows dialog box for each file that already
exists on destination directory, with options to Skip, Rename, Copy
Over, and Abort. If the user choses Update, the dialog box only shows
for files that don't match (automatically skip those that match on
time/date/size/version).
- Allow user to install HELP file in either the Windows directory or the
default (program) directory. This is a personal preference of mine.
If you don't like this, simply leave out the [HELP] section in the
STARTUP.INI and put the HLP file in the directory you want.
- Optional popup of all directories (except the Windows and System) which
the user can install files to. User can change directories here. You
can disable this. But even on the popup, dependent directories cannot
be changed. IE, if you change your *Default directory to D:\XXX, then
Dest4 in the example above would be D:\XXX\TEST2.
- Combined STARTUP.INI and FILES.DAT from previous versions into one file.
- If program needs a directory which doesn't exist, get a popup dialog
box asking if you want to create this directory.
- If the program starts to create an icon in a group that already has the
"same" icon -- ie, if either the Icon Title ("Description") or the
Command Line matches **exactly**, then the user can create another
icon, replace the current icon, or pick another group to install to.
- User has many chances to cancel the installation.
- Thanks to Brian Stine for the neat sub FadeForm.
- The fonts on all the forms are set to either "Helv" or "MS Sans Serif",
depending upon the version of Windows. Defensive programming....
- There is special handling for DDEML.DLL (see hints below). Also for
COMMDLG.DLL.


12/30/92
- The main improvement (other that a number of bug fixes ...grrrr...) is
the ability to install up to 99 subdirectories. One user wanted to
do 20-some, but if you want more than 99, you'll have to modify it
yourself <>.
- Also, each subdirectory shows on a "scrolling" list where the user has
a chance to choose NOT to install that directory. You can also grey-out
a particular directory, in which case the user WON'T have a chance to
de-select it. The "scrolling" list is kinda kludgy, but I didn't want
to use any 3rd-party library in an install program. If someone has a
better idea, **PLEASE** let me know. The example given installs 13
directories (in addition to WIN, SYS, and HELP).
- Also, as a by-product of the main mods, I was able to greatly simplify
the code for copying files. Cleaned up some other areas, and added
some more comments.

03/30/1993
- Creates an .INI file for use by the UNINSTAL.EXE program


=============================================================================
Hints on SETUP.LST

You need to be **very** careful what you put in SETUP.LST, and how you put it
there. You have **NO** control over the error handling here -- if anything
goes wrong here the program aborts -- period. At least in your code, you
have a chance to handle the error.

If you don't use any 3rd party tools in the setup program (I **strongly**
recommend that you don't), then your SETUP.LST would look something like
this:

SETUP1.EX_ (compressed with -r option)
VER.DL_ (renamed, but not compressed)
SETUPKIT.DL_ (compressed with -r option)
VBRUN200.DL_ (compressed with -r option)

DDEML.DLL is a special case. You **CAN** try to install in in SETUP.LST, but
if the user is running Windows 3.1, the odds are good that it will already be
in memory, thus aborting SETUP.EXE. Again, you have no control here.

There is special handling for this file in the CopyFiles2 sub (for either
the Windows or System directories). If you get an error with this file
within SETUP1.EXE, the program won't abort -- it will just give the user a
message to install it from DOS after exiting from Windows. Also, before
getting to this point, the user will have a chance to SKIP copying this file,
and will see the time/date/version # of each of the files.

COMMDLG.DLL is handled similarly to DDEML.DLL, and for the same reasons.

Note that compressed files on a floppy disk can take a long time to get the
version number on. The bigger the file, the longer the time (seems almost
exponential). So you have a tradeoff here -- either don't compress the bigger
files, compress them (but allow for the user's frustration), or disable the
version checking.



=============================================================================
Other needed improvements:

It would probably be nice to show the user what changes you are going to make
in WIN.INI and SYSTEM.INI, and allow them to abort (or at least make this an
option in the STARTUP.INI file).

Another improvement would be to allow multiple source drives/directories, so
it would be easier to install programs from multiple drives/directories on a
LAN.

The code for multiple disks is not implemented. Part of the code is in the
CopyFile2 sub, but it is commented out. This is left as an exercise for the
reader <>.

Program really needs to check all the directories on the path to see if the
VBX, DLL, or EXE file you are currently copying is in any of the other
directories. The code isn't hard, and I'll probably put it in the next
modification, but I am trying to recover from a long weekend of
"feature-itus".

I have no idea if the code works in Windows 3.0. I recently lost the last
machine I had access to that was running 3.0. It "should" work, but it is
totally untested here.




 December 22, 2017  Add comments

Leave a Reply