roc*_*ady 1 delphi environment-variables delphi-10-seattle
我在Windows7 64位机器上使用Delphi 10 Seattle.
这是问题所在:
为了为我的软件创建测试环境,我创建了一个小应用程序,将环境变量添加到Windows注册表下
HKEY_CURRENT_USER\Environment
Run Code Online (Sandbox Code Playgroud)
我在我的包和主项目的搜索路径中使用这些变量,以便能够将项目设置提交到源代码控制中,并轻松地从生产切换到测试分支等...
现在,问题是,在创建环境变量之后,Delphi不会更新其"内部系统变量存储"
Tools --> Options --> Environment Variables
Run Code Online (Sandbox Code Playgroud)
而且项目没有编译.
即使重新启动Delphi也没有带来预期的效果.我必须完全重启Windows才能使其正常工作.
有没有办法在我的应用程序中更新Delphi中的系统变量?我错过了别的什么吗?
非常感谢!
我在本篇博文中描述的Path Compressor中做了类似的事情.相关方法是这样的:
procedure TPathCompressor.NotifyChanges;
{ Sending a WM_SETTINGCHANGE message to all top level windows. Otherwise the new environment variables
will only be visible after logoff/logon. }
begin
{$IFDEF DEBUG}
Exit;
{$ENDIF}
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, NativeInt(PChar('Environment')), SMTO_ABORTIFHUNG, 5000, nil);
end;
Run Code Online (Sandbox Code Playgroud)