通过修改注册表实现。
修改完后要广播WM_SETTINGCHANGE消息通知现有窗体重新加载环境变量。
# -*- coding:utf-8 -*-
import _winreg
import win32api
import win32con
if '__main__' == __name__:
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'System\\CurrentControlSet\\Control\\Session Manager\\Environment', 0, _winreg.KEY_WRITE)
_winreg.SetValueEx(key, 'var_key', 0, _winreg.REG_SZ, 'var_value')
_winreg.CloseKey(key)
win32api.SendMessage(win32con.HWND_BROADCAST, win32con.WM_SETTINGCHANGE, 0, 'Environment')