OSDN Git Service

Added support for setting the number threads in the GUI + some improvements applicati...
[slunkcrypt/SlunkCrypt.git] / gui / Utilities / ProcessRunner.cs
index ea55985..7ffd8e3 100644 (file)
@@ -226,7 +226,7 @@ namespace com.muldersoft.slunkcrypt.gui.utils
         {
             process.StartInfo.FileName = executablePath;
             process.StartInfo.Arguments = CreateArgumentList(arguments);
-            SetupEnvironment(process.StartInfo.EnvironmentVariables, environmentVariables);
+            SetupEnvironment(process.StartInfo.EnvironmentVariables, executablePath, environmentVariables);
             process.StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory;
             process.Start();
             SetProcessPriority(process, priorityClass);
@@ -390,13 +390,15 @@ namespace com.muldersoft.slunkcrypt.gui.utils
             return false;
         }
 
-        private static void SetupEnvironment(StringDictionary dictionary, IReadOnlyDictionary<string, string> environmentVariables)
+        private static void SetupEnvironment(StringDictionary dictionary, string executablePath, IReadOnlyDictionary<string, string> environmentVariables)
         {
+            string baseDirectory = Path.GetDirectoryName(executablePath);
+            dictionary["PATH"] = string.IsNullOrEmpty(baseDirectory) ? Environment.SystemDirectory : baseDirectory;
             if (!ReferenceEquals(environmentVariables, null))
             {
                 foreach (KeyValuePair<string, string> entry in environmentVariables)
                 {
-                    dictionary.Add(entry.Key, entry.Value);
+                    dictionary[entry.Key] = entry.Value;
                 }
             }
         }