关于GetEnvironmentVariable函数一个疑问(100分)

  • 主题发起人 主题发起人 什么年代
  • 开始时间 开始时间

什么年代

Unregistered / Unconfirmed
GUEST, unregistred user!
SetEnvironmentVariable('EnvirVar','test');<br><br>GetEnvironmentVariable('EnvirVar',@str,128);<br>showmessage(strpas(str))<br><br>同样是设置,读取环境变量,上面两个代码为什么写在<br>一个project1.exe中就可以显示出test,而把2个代码分别写在<br>project1.exe和project2.exe中,却显示不了值呢?
 
SetEnvironmentVariable所设置的环境变量只在当前进程生效,而不会改变系统的环境变量,如果要保存必须要用注册表:<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=1556036
 
我看了以前这个帖子,可是还是不行,不知道我哪错了。<br>这样。<br>第一个project的form1中<br>修改一个用户变量,并同时修改注册表,<br>这时注册表信息和环境变量是修改了。<br><br>第二个project的form1中<br>GetEnvironmentVariable('test',@str,128);<br>showmessage(strpas(str)) ;<br>str是开机时变量的值,并不随着修改而改变。<br>而且这函数是取用户变量,还是系统变量,<br>我的理解,有用户先取用户,没有取系统,对吗?
 
上面那个帖子里面不是说的很清楚了,缺少了这一句:<br>SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment'))); &nbsp;<br>这个是用来通知系统有个设置改了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部