From 86f209a3027f713926942682b521cd69fa06bb86 Mon Sep 17 00:00:00 2001 From: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com> Date: Wed, 22 Apr 2020 17:50:38 -0700 Subject: [PATCH] Opening explorer if the user has types a file path. --- .../launcher/Plugins/Wox.Plugin.Shell/Main.cs | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/modules/launcher/Plugins/Wox.Plugin.Shell/Main.cs b/src/modules/launcher/Plugins/Wox.Plugin.Shell/Main.cs index c474ca51a0..252f04022d 100644 --- a/src/modules/launcher/Plugins/Wox.Plugin.Shell/Main.cs +++ b/src/modules/launcher/Plugins/Wox.Plugin.Shell/Main.cs @@ -173,8 +173,8 @@ namespace Wox.Plugin.Shell ProcessStartInfo info; if (_settings.Shell == Shell.Cmd) { - var arguments = _settings.LeaveShellOpen ? $"/k \"{command}\"" : $"/c \"{command}\" & pause"; - + var arguments = _settings.LeaveShellOpen ? $"/k \"{command}\"" : $"/c \"{command}\" & pause"; + info = ShellCommand.SetProcessStartInfo("cmd.exe", workingDirectory, arguments, runAsAdministratorArg); } else if (_settings.Shell == Shell.Powershell) @@ -193,24 +193,32 @@ namespace Wox.Plugin.Shell } else if (_settings.Shell == Shell.RunCommand) { - var parts = command.Split(new[] { ' ' }, 2); - if (parts.Length == 2) + //Open explorer if the path is a file or directory + if(Directory.Exists(command) || File.Exists(command)) + { + info = ShellCommand.SetProcessStartInfo("explorer.exe", arguments: command, verb: runAsAdministratorArg); + } + else { - var filename = parts[0]; - if (ExistInPath(filename)) + var parts = command.Split(new[] { ' ' }, 2); + if (parts.Length == 2) { - var arguments = parts[1]; - info = ShellCommand.SetProcessStartInfo(filename, workingDirectory, arguments, runAsAdministratorArg); + var filename = parts[0]; + if (ExistInPath(filename)) + { + var arguments = parts[1]; + info = ShellCommand.SetProcessStartInfo(filename, workingDirectory, arguments, runAsAdministratorArg); + } + else + { + info = ShellCommand.SetProcessStartInfo(command, verb: runAsAdministratorArg); + } } else { info = ShellCommand.SetProcessStartInfo(command, verb: runAsAdministratorArg); } } - else - { - info = ShellCommand.SetProcessStartInfo(command, verb: runAsAdministratorArg); - } } else {