I have kind the same problem. I "install" a python tool and environment and create some system variables in the registry. To refresh the registry I do the following:
def RefreshEnv():
HWND_BROADCAST = 0xFFFF
WM_SETTINGCHANGE = 0x1A
SMTO_ABORTIFHUNG = 0x0002
result = ctypes.c_long()
SendMessageTimeoutW = ctypes.windll.user32.SendMessageTimeoutW
SendMessageTimeoutW(HWND_BROADCAST, WM_SETTINGCHANGE, 0, u'Environment',
SMTO_ABORTIFHUNG, 5000, ctypes.byref(result))
This method is not refreshing the registry like I expected. I still have to open the window to edit the system variables in Windows and just click OK
to refresh them. Otherwise my installed tools are crashing with an KeyError
while trying to catch the environment variables.
I don't know if the Refresh
function abovee will help you (I guess not), but at least it's a try.