Environment Variable Changes via WM_SETTINGCHANGE not propagating

Environment Variable Changes via WM_SETTINGCHANGE not propagating


I need to install a new application on the machine running windows 8.1 where my login is a member of the system administrators. I install it. I then go to system control panel, advanced settings, update the user (or system) path variable in the environment variables. I then use DOpus to to open a terminal shell on a particular directory. I then type "set" to list the environment variables and look specifically at the "path" variable that I've modified.


The change I made via the System control panel's advance settings to the path variable IS NOT propagated. So, I then explicitly tell DOpus to exit. I restart DOpus. Again, same result. Only way I can update it is to either log-out or reboot. That is a pain in the butt as I am in the middle of various projects and have to close all of them, restart/re-login, and re-set everything up. This happens so frequently it is painful.


Looking for any guidance or advice on telling DOpus to refresh its environment variables, specifically on shells it spawns.

Thank you!

That works ok when I try it; in fact I don't even need to exit Opus - command prompts opened after a change to environment variables automatically reflect the new settings.

Does it say "ADMINISTRATOR" (in all caps) in the Opus window titlebar?

Running the whole dopus.exe process elevated (rather than individual windows via Opus's Admin Mode) could block receipt of the WM_SETTINGCHANGE message (assuming UAC is enabled on the account; if not then it doesn't matter).

Do you see the same issue if you launch the command prompt via Explorer or something else? The issue could be that the prompt isn't using the same user/context as the env-vars being edited.

When you exit Opus, are you fully exiting (via File / Exit Directory Opus), or just closing the window? If the env-var change isn't seen even through a full exit then the problem can't be related to Opus or WM_SETTINGCHANGE, since it isn't propagating to new processes either. (Unless the process from which you are launching Opus has the same problem, but presumably that is part of the system, e.g. the taskbar.)