This Article provides a brief overview of Windows OpenEdge:
- Client startup sequence and settings.
- Explains the Ini2Reg executable and some use-cases
- Clarifies the Registry HKCU, HKLM search order
- How the -basekey and -ininame optional startup parameters can be used to load a Progress client session.
Beginning with Progress 8.2, Progress made the industry shift to utilize the Windows 95/NT Registry.
When Progress installs, it tailors entries into the Windows Registry and creates Registry key entries for each installed Product License:
HKEY_CURRENT_USER\Software\PSC\PROGRESS\<version number>
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\PSC\PROGRESS\<version number>
HKEY_CURRENT_USER\Software\PSC\PROGRESS\x64\<version number>
HKEY_LOCAL_MACHINE\SOFTWARE\PSC\<productname>\<version number>
In OpenEdge Release 11.5, both 32 Bit and 64 Bit clients are able to be installed on the same Windows machine. This was accomplished by using different Registry keys to store information about each OpenEdge installation respectively:
OpenEdge 32-bit install on 32-bit Windows or 64-bit on 64-bit Windows:
HKEY_LOCAL_MACHINE\SOFTWARE\PSC\<productname>
OpenEdge 32-bit install on 64-bit Windows:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\PSC\<productname>
When the Local Administrator of the machine installs Progress OpenEdge, then the Profile for the duration of the time they are logged in to that machine is: HKEY_CURRENT_USER.
Since no-one else has access to this profile, when someone else logs in to this machine under a different user name they will not have access to this profile because their profile would be loaded into (their): HKEY_CURRENT_USER. Refer to the following Article, which demonstrates how to navigate to the appropriate basekey for the installation that the client is running from:
INI File to Registry Translation tool (ini2reg.exe):
- INI File to Registry Translation, is a tool that Progress provides to migrate existing .ini files into the appropriate places in the Registry.
- When INI File to Registry Translation tool is started (%DLC%/bin/ini2reg.exe), the .ini file to migrate and a choice of which Registry Key Location to insert the .ini values into will be presented.
- For each entry in the initialization file, INI2REG creates a Registry key entry with the same value, as long as the user running ini2reg has the correct privileges to update the Registry Key Location.
- For further example refer to Article How to use INI2REG utility
To have the Registry values usable by all other local users of the machine, migrate the values to:
HKEY_LOCAL_MACHINE
As each user has their own Windows Profile allowing them to have customizable Registry settings, without disturbing the normal working of Progress for other users, Ini2Reg can be run for those users who need to have modified Progress Registry settings. When special settings for one person are not needed by others, then while that specific user is logged in to the machine Ini2Reg can be run to migrate their specifically tailored .ini file, to insert those values into:
HKEY_CURRENT_USER
Windows Registry Search Path and Order:
When an OpenEdge executable is started the following method is used to search for startup parameters:
The Registry Search Path and Order will search first in HKEY_CURRENT_USER registry keys to find Progress startup settings before it moves to the HKEY_LOCAL_MACHINE hive. Only when it has found no Progress startup settings in either of these keys, will it search for a progress.ini file in the current %PATH% which is usually the current directory followed by the install directory %DLC%
The Registry is searched in the following order:
- HKEY_CURRENT_USER\<Path>\<root name>.<extension>
- HKEY_CURRENT_USER\SOFTWARE\PSC\PROGRESS\version\<Path>\<root name>.<extension>
- HKEY_CURRENT_USER\SOFTWARE\<Path>\<root name>.<extension>
- HKEY_CURRENT_USER\<root name>.<extension>
- HKEY_CURRENT_USER\SOFTWARE\PSC\PROGRESS\version\<Path>\<root name>
- HKEY_CURRENT_USER\SOFTWARE\<root name>
- HKEY_LOCAL_MACHINE\<Path>\<root name>.<extension>
- HKEY_LOCAL_MACHINE\SOFTWARE\PSC\PROGRESS\version\<Path>\<root name>.<extension>
- HKEY_LOCAL_MACHINE\SOFTWARE\<Path>\<root name>.<extension>
- HKEY_LOCAL_MACHINE\<root name>.<extension>
- HKEY_LOCAL_MACHINE\SOFTWARE\PSC\PROGRESS\version\<Path>\<root name>
- HKEY_LOCAL_MACHINE\SOFTWARE\<root name>
Starting Progress with an .ini file:
The Registry Search Path can be bypassed by explicitly instructing which Registry Key or .ini file to use instead with the -basekey and -ininame parameters respectively.
Example 1: Start the client to search directly a specific Registry hive:
prowin.exe -basekey HKEY_LOCAL_MACHINE\ -ininame SOFTWARE\PSC\PROGRESS\11.7
HKEY_LOCAL_MACHINE will be searched directly for a subkey SOFTWARE\PSC\PROGRESS\11.7, and the startup settings within that.
Example 2: Start the client to use a specific .ini file only:
prowin32.exe -basekey INI -ininame c:\dlc32\bin\progress.ini
The Registry search will be by passed and instead use the ini the file named progress.ini in the c:\dlc\bin directory.