当前位置: 代码迷 >> C语言 >> 头痛,如何设置系统的环境变量?
  详细解决方案

头痛,如何设置系统的环境变量?

热度:554   发布时间:2008-05-27 18:06:06.0
头痛,如何设置系统的环境变量?
我想改变系统的一个环境变量,用putenv只能改变当前程序副本的环境变量,对系统的不起作用。还有什么方法可以直接更改系统的环境变量,可以让其他程序调用?
搜索更多相关的解决方案: 环境变量  头痛  系统  设置  

----------------解决方案--------------------------------------------------------
好像不行吧……
----------------解决方案--------------------------------------------------------
CSDN好像有个帖子,答案是:使用SDK API……

贴一段资料,来源:MSDN
Environment Variables
Every process has an environment block that contains a set of environment variables and their values. The command processor provides the set command to display its environment block or to create new environment variables. Programs started by the command processor inherit the command processor's environment variables.


By default, a child process inherits the environment variables of its parent process. However, you can specify a different environment for the child process by creating a new environment block and passing a pointer to it as a parameter to the CreateProcess function.

The GetEnvironmentStrings function returns a pointer to the environment block of the calling process. This should be treated as a read-only block; do not modify it directly. Instead, use the SetEnvironmentVariable function to change an environment variable. When you are finished with the environment block obtained from GetEnvironmentStrings, call the FreeEnvironmentStrings function to free the block.

Calling SetEnvironmentVariable has no effect on the system environment variables. The user can add or modify system environment variables using the Control Panel. To programmatically add or modify system environment variables, add them to the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment registry key, then broadcast a WM_SETTINGCHANGE message. This allows applications, such as the shell, to pick up your updates. Note that environment variables listed in this key are limited to 1024 characters.

The GetEnvironmentVariable function determines whether a specified variable is defined in the environment of the calling process, and, if so, what its value is.

For more information, see the examples in Changing Environment Variables.

[[it] 本帖最后由 StarWing83 于 2008-5-27 18:32 编辑 [/it]]
----------------解决方案--------------------------------------------------------
  相关解决方案