Environment

 

環境変数の読み書き

miyako/4d-plugin-environment

value:=Expand environment string(string)
  • Windows限定
Parameter
Type
Description
string
TEXT
value
TEXT
value:=Get environment variable(name)
PUT ENVIRONMENT VARIABLE (name;value)
Parameter
Type
Description
name
TEXT
value
TEXT

注記: WIndowsプログラムは,起動時に環境変数のコピーを受け取ります。システムまたはユーザーの環境変数はレジストリに書き込まれていますが,これを更新した場合,すでに起動中のプログラムの環境変数は変更されません。環境変数を書き換えたプログラムは,WM_SETTINGCHANGEメッセージを受信し,起動中のプログラムに環境の変化を通知することができます。このプログラムは,MDIウィンドウにメッセージハンドラーをインストールし,メッセージを受信すると,レジストリから環境変数を読み直します(削除された環境変数は,そのまま残されます)。


SDI mode support

Added new experimental command:

REGISTER ENVIRONMENT WINDOW(window)

Normally, the plugins installs a custom event handler for the MDI window. This command is Intended for SDI mode although it will work in either mode. Use it to attach a custom event handler in one of your SDI windows. Calling the command again will reset the previous call.

Note: The window can not be a MDI child window. In MDI mode, use Movable form dialog box.

There is nothing special to do other than to register a capable window. The custom event handler is disposed automatically when the window is closed.

About registry keys

When the plugin detects a WM_SETTINGCHANGE, it iterates over all environment variables (REG_SZ and REG_EXPAND_SZ) in the following order:

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

  2. HKEY_CURRENT_USER\Environment

  3. HKEY_CURRENT_USER\Volatile Environment

  4. HKEY_CURRENT_USER\Volatile Environment\{number}

The logic implies that removed environment variables are not updated in session.