对于环境变量的访问,Windows提供了两个API,但这两个API对环境变量的操作仅对当前进程有效,并不会影响操作系统中的环境变量。

1 BOOL SetEnvironmentVariable(
2   LPCTSTR lpName,  // environment variable name
3   LPCTSTR lpValue  // new value for variable
4 );
5 DWORD GetEnvironmentVariable(
6   LPCTSTR lpName,  // environment variable name
7   LPTSTR lpBuffer, // buffer for variable value
8   DWORD nSize      // size of buffer
9 );

那么想要修改操作系统中的本地环境变量,应该怎么做呢?

一、修改环境变量对应的注册表键值;

1)其中当前用户的环境变量对应于项HKEY_CURRENT_USER\Environment;

如何在应用程序中修改本地环境变量

2)系统环境变量对应于项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment。

如何在应用程序中修改本地环境变量

 

二、通知操作系统更新设置。

1 //广播通知所有窗口更新环境变量,超时立即返回
2 ::SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, LPARAM(_T("Environment")), SMTO_BLOCK, 5000, NULL);

根据以上思路,我用VC编写了一个操作环境变量的类CEnvironment。
源代码下载:http://pan.baidu.com/s/1kT4HnWN

相关文章:

  • 2022-12-23
  • 2021-11-04
  • 2021-12-14
  • 2021-12-08
  • 2021-08-08
  • 2021-10-19
猜你喜欢
  • 2022-02-23
  • 2022-12-23
  • 2022-01-13
  • 2021-04-02
  • 2022-12-23
  • 2022-12-23
  • 2021-06-28
相关资源
相似解决方案