Release 10.1A: OpenEdge Deployment:
Managing 4GL Applications

> ## Searching progress.ini and the Registry at startup

> 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.

> Note: The `-basekey` and `-ininame` parameters can only be used on the command line. You cannot use them within a parameter file.

> Figure 4–1 illustrates the path that OpenEdge follows when searching for environment information in Windows.

> Figure 4–1: Windows environment information search path

> 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:

> 1. The current working directory (as defined in the Working Directory field in the Program Item properties sheet for Windows).

> 2. The `WINDOWS` directory.

> 3. The directory that contains the OpenEdge executable.

> 4. 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 Progress 4GL `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 `-basekey` parameter.

> - OpenEdge found the environment information in the Registry at startup or at the last `LOAD` statement.

> The Progress 4GL `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.

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095