73 lines · 2.2 KB · Text
RawDownload
[Code]{ Adapted from https://stackoverflow.com/a/46609047 } const  SystemEnvironmentKey = 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment';  UserEnvironmentKey = 'Environment'; { Get the appropriate registry key and root based on install mode. }procedure GetEnvironmentKeyInfo(var RootKey: Integer; var SubKey: string);begin  if IsAdminInstallMode then begin    RootKey := HKEY_LOCAL_MACHINE;    SubKey := SystemEnvironmentKey;  end else begin    RootKey := HKEY_CURRENT_USER;    SubKey := UserEnvironmentKey;  end;end; { Add path to environment PATH variable. }procedure EnvAddPath(Path: string);var    Paths: string;    RootKey: Integer;    SubKey: string;begin    { Get the appropriate registry location }    GetEnvironmentKeyInfo(RootKey, SubKey);        { Retrieve current path (use empty string if entry not exists) }    if not RegQueryStringValue(RootKey, SubKey, 'Path', Paths)    then Paths := '';     { Skip if string already found in path }    if Pos(';' + Uppercase(Path) + ';', ';' + Uppercase(Paths) + ';') > 0 then exit;     { Append string to the end of the path variable }    Paths := Paths + ';'+ Path +';'     { Overwrite (or create if missing) path environment variable }    if RegWriteStringValue(RootKey, SubKey, 'Path', Paths)    then Log(Format('Added [%s] to PATH: [%s]', [Path, Paths]))    else Log(Format('Error adding [%s] to PATH: [%s]', [Path, Paths]));end; { Remove path from environment PATH variable. }procedure EnvRemovePath(Path: string);var    Paths: string;    P: Integer;    RootKey: Integer;    SubKey: string;begin    { Get the appropriate registry location }    GetEnvironmentKeyInfo(RootKey, SubKey);        { Skip if registry entry not exists }    if not RegQueryStringValue(RootKey, SubKey, 'Path', Paths) then        exit;     { Skip if string not found in path }    P := Pos(';' + Uppercase(Path) + ';', ';' + Uppercase(Paths) + ';');    if P = 0 then exit;     { Update path variable }    Delete(Paths, P - 1, Length(Path) + 1);     { Overwrite path environment variable }    if RegWriteStringValue(RootKey, SubKey, 'Path', Paths)    then Log(Format('Removed [%s] from PATH: [%s]', [Path, Paths]))    else Log(Format('Error removing [%s] from PATH: [%s]', [Path, Paths]));end; 

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t