通常大家研究下帮助,发现了SetEnvironmentVariable函数,调试了半天程序却发现它不是你要的结果,因为这个破函数改的环境变量只在这个进程中适用,过期作废!
于是有人又研究了BOOL SetEnvVariable(LPSTR szName, LPSTR szValue, CMO cmo); 还把帮助贴了上去,可是,程序USE啥玩意能编译过去?
解决的办法,研究下注册表吧。微软早就放弃了WIN.INI,这些咚咚都改到注册表中了。uses
...........
Registry,
.......var
reg : TRegistry;
........reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
if not reg.OpenKey( 'System\CurrentControlSet\Control\' +
'Session Manager\Environment', False ) then
begin
xxxxxxxxxx
end;
//如果只对当前用户适用就改成HKEY_CURRENT_USER\Environment
reg.WriteString( '你想填的环境变量名称','环境变量内容' );
reg.CloseKey;
reg.Free;全局立刻生效的环境变量就改好了。
至于怎么修改/删除,就是注册表的内容了。最后对某些误导别人的家伙表示不满,“你不懂别瞎掰!”。
于是有人又研究了BOOL SetEnvVariable(LPSTR szName, LPSTR szValue, CMO cmo); 还把帮助贴了上去,可是,程序USE啥玩意能编译过去?
解决的办法,研究下注册表吧。微软早就放弃了WIN.INI,这些咚咚都改到注册表中了。uses
...........
Registry,
.......var
reg : TRegistry;
........reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
if not reg.OpenKey( 'System\CurrentControlSet\Control\' +
'Session Manager\Environment', False ) then
begin
xxxxxxxxxx
end;
//如果只对当前用户适用就改成HKEY_CURRENT_USER\Environment
reg.WriteString( '你想填的环境变量名称','环境变量内容' );
reg.CloseKey;
reg.Free;全局立刻生效的环境变量就改好了。
至于怎么修改/删除,就是注册表的内容了。最后对某些误导别人的家伙表示不满,“你不懂别瞎掰!”。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货