diff --git a/wininst.iss b/wininst.iss index b241973..348a214 100644 --- a/wininst.iss +++ b/wininst.iss @@ -10,6 +10,51 @@ #define MyAppAssocExt ".nbt" #define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt + +[Code] +procedure UpdatePathWithAppBin(); +var + PathVar: string; + BinPath: string; +begin + // Retrieve current PATH environment variable + PathVar := GetEnv('PATH'); + + // Construct the full path to the bin directory + BinPath := ExpandConstant('{app}\bin'); + + // Check if the bin directory is not already in PATH + if Pos(BinPath, PathVar) = 0 then + begin + // Append bin directory to PATH + if PathVar <> '' then + PathVar := PathVar + ';'; + PathVar := PathVar + BinPath; + + // Update the PATH environment variable + SetEnv('PATH', PathVar); + end; +end; +procedure RemovePathWithAppBin(); +var + PathVar: string; + BinPath: string; +begin + // Retrieve current PATH environment variable + PathVar := GetEnv('PATH'); + + // Construct the full path to the bin directory + BinPath := ExpandConstant('{app}\bin'); + + // Remove bin directory from PATH + PathVar := StringReplace(PathVar, BinPath + ';', '', [rfReplaceAll, rfIgnoreCase]); + PathVar := StringReplace(PathVar, BinPath, '', [rfReplaceAll, rfIgnoreCase]); + + // Update the PATH environment variable + SetEnv('PATH', PathVar); +end; + + [Setup] ; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) @@ -68,5 +113,8 @@ Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [Run] -Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent +Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent; AfterInstall: UpdatePathWithAppBin + +[UninstallRun] +Filename: "{code:RemovePathWithAppBin}"; Flags: runhidden