生成系统环境变量

ContractedBlock.gifExpandedBlockStart.gifCode
procedure CreateEnvironment(const ALIBPath, AINCPath: string);
resourcestring
  REG_C51_LIB 
= 'C51LIB';
  REG_C51_INC 
= 'C51INC';
  REG_PATH 
= 'PATH';
  REG_MACHINE_LOCATION 
= 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment';
  REG_USER_LOCATION 
= 'Environment';
var
  FPath: string;
  
function DataExits(const ASources, AData: string): Boolean;
var
  FList: TStrings;
  i: Integer;
begin
  Result :
= False;
  FList :
= Split(ASources, ';');
  
for i := 0 to FList.Count - 1 do
  
begin
    
if FList[i] = AData then Result := True;
  
end;
end;
begin
  
with TRegistry.Create do
  
begin
    try
      RootKey :
= HKEY_LOCAL_MACHINE;
      OpenKey(REG_MACHINE_LOCATION, True);

      FPath :
= ReadString(REG_PATH);

      
if not DataExits(FPath, ALIBPath)then
      
begin
        FPath :
= ReadString(REG_PATH) + ALIBPath + ';';

        WriteString(REG_PATH, FPath);
        SetEnvironmentVariable(PChar(REG_C51_LIB), PChar(ALIBPath));
//        SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment')));
      
end;

      FPath :
= ReadString(REG_PATH);
      
if not DataExits(FPath, AINCPath)then
      
begin
        FPath :
= ReadString(REG_PATH) + AINCPath + ';';

        WriteString(REG_PATH, FPath);
        SetEnvironmentVariable(PChar(REG_C51_LIB), PChar(ALIBPath));
//        SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment')));
      
end;
      SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 
0, Integer(PChar('Environment')));
    finally
      Free;
    
end;
  
end;
end;

转载于:https://www.cnblogs.com/sonicit/archive/2008/09/06/1285679.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值