GroupWare Support

SoftSolutions 4.x for Windows	Last Revision 6/21/95

Technical Document

Using SOFTWIN.EXE to Update Workstations

Introduction

As a system administrator have you ever wanted a tool that could keep files, like DLLs, and INI file settings in sync on all of your workstations; without you ever having to visit the workstation? You may not need to buy a special tool for that purpose as the SoftSolutions SOFTWIN.EXE could do this for you. This paper discusses the use of the SOFTWIN.EXE to manage versions of various files, including INI files, on your users workstations.

Overview

Many Windows programs require that DLLs or other such files be installed locally, and many also have specific INI file settings that are difficult to manage and maintain. SOFTWIN.EXE was written to help keep SoftSolutions DLLs and integrations in sync on all workstations. SOFTWIN.EXE uses a number of setup files to know exactly how to update the workstation. These files are SYSTEM.WKS, INTEGRAT.WKS, various *.INT files, and the local SOFTSOLW.INI file.

At first glance you will notice that all of these files are structured much like standard INI files, with sections, items and values. The format is

[<Section Name>]

<item name>=<value>

<item name>=<value>

etc...

These files define how SOFTWIN.EXE will update the workstation. Each section is for preforming a particular operation, such as copying files, then within each section is the relevant information on exactly what, such as which files to copy and where.

How SOFTWIN.EXE works

SOFTWIN.EXE makes a comparison between the dates in SOFTSOLW.INI file and the dates in SYSTEM.WKS & INTEGRAT.WKS to know whether an update is needed. The dates in SYSTEM.WKS & INTEGRAT.WKS are modified by the install program, to which the dates in SOFTSOLW.INI are synchronized once SOFTWIN.EXE has updated the workstation. After SOFTWIN.EXE has compared the dates and updated the workstation if necessary, it then invokes the real SoftSolutions program, SOFTSOLW.EXE. In essence, SOFTWIN.EXE is a shell that sits on top of SOFTSOLW.EXE, who's only purpose is to handle workstation updates.

The SYSTEM.WKS file is used by SOFTWIN.EXE to do general workstation updates, thus this is the file which could be used to help update/setup your workstations. The SYSTEM.WKS contains the "rules" and information on how to update the workstation. (Each section is explained later)

The INTEGRAT.WKS is used for updating particular integrations. This file only contains the dates when each integration was updated, so the info for updating workstations in this case are stored .INT files; one for each particular integration. It is important to note that .INT files are also used by the install program to know how to install the integrations. Only some of the sections in these files are used by SOFTWIN.EXE to know how to update the workstations. Only the sections related to updating workstations are discussed in this document.

Explanation of relevant variables and sections

The following is a list of variables used by SOFTWIN.EXE. These are typically used to construct paths that would be specific to the user. For example, 1=$$Psystem\ssappint.dll,$$Sssappint.dll would get expanded out to 1=f:\ss\prog\system\ssappint.dll,c:\windows\system\ssappint.dll (if f:\ss\prog\ was the SoftSolutions programs directory and c:\windows\system was the Windows system directory).

Variable	Refers to

$$P	SoftSolutions Programs Directory

$$D	SoftSolutions Data Directory

$$W	Windows Directory

$$S	Windows System Directory

$$<x>	A Value from the [Answers] section at the end of the file.

(where <x> corresponds to the number of the item in the answers

section. i.e. $ $1corresponds to 1=<value> in the

[ Answers]section )

|?	Source file doesn't have to exist

|r	Rename file (create backup of destination)

|w	Restart Windows if file is updated

NOTHING	Used to delete a file

Below is a list of each relevant section that could appear in the SYSTEM.WKS, and .INT files. Each section is used to preform a specific operation, such as copying files, updating INI files, running programs, etc. An explanation is included that identifies the use of each section.

NOTE: Each <item #> in each section should be sequential and start with 1. <Item #'s> should not be repeated or be skipped. Also like INI files, a line beginning with a semicolon is treated as a comment line.

[Info]

This section contains the date(s) that are compared. The first number on the right side of the '=' sign should be bumped up by at least one (in SYSTEM.WKS and/or INTEGRAT.WKS), in order to force an update on ALL workstations. If the number is bumped down by at least one in the local SOFTSOLW.INI, then only that workstation will be updated. These numbers are actually internal date codes which correspond to the dates on the left. Bumping these numbers up by one effectively increase that date code by one second; which is still enough to cause SOFTWIN.EXE to see a difference.

In SYSTEM.WKS file the relevant line reads

SystemUpdate=<internal date code> <date>.

(i.e. SystemUpdate=802712709 Fri Jun 09 09:45:09 1995)

In the INTEGRAT.WKS file the format of each line is

<name of INT file>=<internal date code> <date>

(i.e. WPWIN61.INT=802983475 Mon Jun 12 12:57:55 1995

EXCEL5.INT=802983480 Mon Jun 12 12:58:00 1995)

[WorkStationModINI]

This section contains info on INI files that are to be modified in the user's Windows directory. Each line indicates the INI file, section, item and new value for that item. If that item doesn't exist in the INI file the item is added.

The format of each line in this section is:

<item #>=<Name of INI file>,<Section Name>,<Item

Name>,<New Value>

Examples

1=softsolw.ini,integration,ODMNonProfiled,YES

2=win.ini,integrations,SaveNormal,NO|w

[WorkStationCopy]

This section contains info on files to be copied to (or deleted from) the user's workstations. The format of each line in this section is:

<item #>=<From Filename>,<To Filename>

NOTE: To Delete a file use the keyword NOTHING and the |? Variable as the <To Filename> value. For example, 16=$$Wsc59vw.ca,NOTHING|? will delete the previewer quicklist file from the windows directory.

Examples

1=$$Sssint.ctx,NOTHING|?

2=$$Pssint.ctx,$$Sssint.ctx

3=$$Psystem\ssappint.dll,$$Sssappint.dll

4=f:\update\mydll.dll,$$Smydll.dll

[WorkStationWinExec]

This section is used to run a program on a user's workstation. The format of each line in this section is:

<item #>=<Command Line>

Note: The OLE2= item is a special case, just start with an item number of 1 (1= ) after this line.

Examples

OLE2=regedit /s $$Psystem\ole2.reg

1=regedit /s f:\update\myfile.reg

2=f:\update\myupdate.exe /myswitches

[WorkStationRegEdit]

This section is used to register information into the user's Windows Registration Database (REG.DAT).

The format for each line in this section is:

<item #>=<Registation Item>,<Value (optional)>

Examples

1=ODMA\SoftSol,SSWODMA.DLL

2=ODMA\SoftSol\DEFAULT

3=MyKey\MySubKey,MyValue

[Answers]

This section is used to for resolving variables of the form $$<item #>. For example, the variable $$1 corresponds with item 1 in this section, and variable $$2 corresponds with item 2, etc. This section only appears in .INT files.

The format for each line in this section is:

<item #>=<Variable Value>

Examples

1=F:\APPS\WINWORD6\

2=F:\APPS\WINWORD6\STARTUP\

3=F:\APPS\WINWORD6\TEMPLATE\

Forcing System Updates

To force and update on your workstation requires three steps.

1. Modify SYSTEM.WKS (or .INT file for certain integrations) with your changes.

2. Bump up the SystemUpdate value in the SYSTEM.WKS file by at least one. (Or bump up the appropriate value for the INT file in INTEGRAT.WKS if you are forcing an integration update)

3. Run SOFTWIN.EXE on the workstation; you should see an "Updating Workstation" box.

CAUTION: Do not use SYSTEM.WKS to preform any functions that an existing .INT file would already do. Not only is such a duplication of effort, it could cause some unexpected side effects.