diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs index 8ba40b881..d973185b2 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs @@ -37,7 +37,6 @@ namespace Flow.Launcher.Plugin.Program.Programs /// Path of the actual executable file. /// public string ExecutablePath => LnkResolvedPath ?? FullPath; - public string WorkingDir => Directory.GetParent(ExecutablePath)?.FullName ?? string.Empty; public string ParentDirectory { get; set; } public string ExecutableName { get; set; } public string Description { get; set; } @@ -140,8 +139,8 @@ namespace Flow.Launcher.Plugin.Program.Programs var info = new ProcessStartInfo { - FileName = ExecutablePath, - WorkingDirectory = WorkingDir, + FileName = FullPath, + WorkingDirectory = ParentDirectory, UseShellExecute = true, Verb = runAsAdmin ? "runas" : null }; @@ -167,8 +166,8 @@ namespace Flow.Launcher.Plugin.Program.Programs { var info = new ProcessStartInfo { - FileName = ExecutablePath, - WorkingDirectory = WorkingDir, + FileName = FullPath, + WorkingDirectory = ParentDirectory, UseShellExecute = true }; @@ -187,7 +186,7 @@ namespace Flow.Launcher.Plugin.Program.Programs var info = new ProcessStartInfo { FileName = ExecutablePath, - WorkingDirectory = WorkingDir, + WorkingDirectory = ParentDirectory, Verb = "runas", UseShellExecute = true }; @@ -221,8 +220,7 @@ namespace Flow.Launcher.Plugin.Program.Programs return Name; } - public static List Watchers = new List(); - + private static List Watchers = new List(); private static Win32 Win32Program(string path) { @@ -573,6 +571,7 @@ namespace Flow.Launcher.Plugin.Program.Programs private static IEnumerable ProgramsHasher(IEnumerable programs) { + // TODO: Unable to distinguish multiple lnks to the same excutable but with different params return programs.GroupBy(p => p.ExecutablePath.ToLowerInvariant()) .AsParallel() .SelectMany(g =>