Search progress.ini and the Registry at startup
- Last Updated: August 16, 2021
- 2 minute read
- OpenEdge
- Version 12.2
- Documentation
At startup, OpenEdge searches for a Registry location, a progress.ini file, or both. The particular search path
depends upon the parameters you specify with the prowin32 command, particularly the Registry Base Key (-basekey) and Initialization File (-ininame) parameters. You can use these parameters to create a more
efficient search at startup.
-basekey and -ininame parameters can only
be used on the command line. You cannot use them within a parameter file.The following illustrates the path that OpenEdge follows when searching for environment information in Windows.

When OpenEdge does not find environment information in the Registry, or
when it was started with the -basekey INI startup
parameter, it searches through directories for a progress.ini file in the following order:
- The current working directory (as defined in the Working Directory field in the Program Item properties sheet for Windows)
- The
WINDOWSdirectory - The directory that contains the OpenEdge executable
- The user's PROPATH
This search order fosters deployment flexibility because you can:
- Create a customized progress.ini file
- Place the file in a consistent place on every machine
- Allow all users to share the same file on a network
After OpenEdge locates the environment information, OpenEdge reads the
values for DLC, PROMSGS, and other environment variables. For each variable, OpenEdge
first searches the location where it found the environment information. If OpenEdge does
not find the variable, it searches for an operating system environment variable.
OpenEdge expects to find all environment settings in the same location it
finds the environment variables. There is one exception: OpenEdge searches HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE first when it starts without the -basekey parameter and finds the environment information in
the Registry. If OpenEdge writes a value to the Registry, however, it will always write
it to HKEY_CURRENT_USER. This allows multiple users of
a single machine to customize settings individually. The environment setting location
could be either a Registry key or an initialization file, but not both.
The ABL GET-KEY-VALUE statement also
searches for user environment information. The GET-KEY-VALUE statement searches either the Registry or a progress.ini file, but not both. When GET-KEY-VALUE searches the Registry, it searches both of
the HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE keys if the following conditions are true:
- The OpenEdge startup command (
prowin32) used for the current session did not include the-basekeyparameter. - OpenEdge found the environment information in the Registry at
startup or at the last
LOADstatement.
The ABL PUT-KEY-VALUE statement writes
to the location where the environment information was found at startup. If that location
is the Registry, and if the prowin32 command did not include the -basekey parameter at startup, the PUT-KEY-VALUE statement writes to the HKEY_CURRENT_USER key and not to the HKEY_LOCAL_MACHINE key.