From 1b51a461dce886902e375ed233061344b38b0e17 Mon Sep 17 00:00:00 2001 From: Vic <10308169+VictoriousRaptor@users.noreply.github.com> Date: Mon, 21 Nov 2022 18:05:35 +0800 Subject: [PATCH 1/2] Use path of lnk to execute program --- .../Flow.Launcher.Plugin.Program/Programs/Win32.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs index 8ba40b88194..cbf9d27abc7 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs @@ -37,7 +37,6 @@ public class Win32 : IProgram, IEquatable /// 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 @@ public Result Result(string query, IPublicAPI api) var info = new ProcessStartInfo { - FileName = ExecutablePath, - WorkingDirectory = WorkingDir, + FileName = FullPath, + WorkingDirectory = ParentDirectory, UseShellExecute = true, Verb = runAsAdmin ? "runas" : null }; @@ -167,8 +166,8 @@ public List ContextMenus(IPublicAPI api) { var info = new ProcessStartInfo { - FileName = ExecutablePath, - WorkingDirectory = WorkingDir, + FileName = FullPath, + WorkingDirectory = ParentDirectory, UseShellExecute = true }; @@ -187,7 +186,7 @@ public List ContextMenus(IPublicAPI api) var info = new ProcessStartInfo { FileName = ExecutablePath, - WorkingDirectory = WorkingDir, + WorkingDirectory = ParentDirectory, Verb = "runas", UseShellExecute = true }; @@ -573,6 +572,7 @@ public static IEnumerable DistinctBy(IEnumerable source, Func 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 => From 626e8b1f42de92ae340b70b6cec80371667e0f24 Mon Sep 17 00:00:00 2001 From: Vic <10308169+VictoriousRaptor@users.noreply.github.com> Date: Mon, 21 Nov 2022 18:11:53 +0800 Subject: [PATCH 2/2] Eliminate warning --- Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs index cbf9d27abc7..d973185b29d 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs @@ -220,8 +220,7 @@ public override string ToString() return Name; } - public static List Watchers = new List(); - + private static List Watchers = new List(); private static Win32 Win32Program(string path) {