Merge pull request #382 from Flow-Launcher/add_copy_cmd_shell_plugin

Add copy cmd shell plugin
This commit is contained in:
Jeremy Wu 2021-03-10 04:13:28 +11:00 committed by GitHub
commit 8577dbe3bf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 26 additions and 15 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View file

@ -11,4 +11,5 @@
<system:String x:Key="flowlauncher_plugin_cmd_cmd_has_been_executed_times">this command has been executed {0} times</system:String>
<system:String x:Key="flowlauncher_plugin_cmd_execute_through_shell">execute command through command shell</system:String>
<system:String x:Key="flowlauncher_plugin_cmd_run_as_administrator">Run As Administrator</system:String>
<system:String x:Key="flowlauncher_plugin_cmd_copy">Copy the command</system:String>
</ResourceDictionary>

View file

@ -21,7 +21,7 @@ namespace Flow.Launcher.Plugin.Shell
public class Main : IPlugin, ISettingProvider, IPluginI18n, IContextMenu, ISavable
{
private const string Image = "Images/shell.png";
private PluginInitContext _context;
private PluginInitContext context;
private bool _winRStroked;
private readonly KeyboardSimulator _keyboardSimulator = new KeyboardSimulator(new InputSimulator());
@ -108,14 +108,14 @@ namespace Flow.Launcher.Plugin.Shell
{
if (m.Key == cmd)
{
result.SubTitle = string.Format(_context.API.GetTranslation("flowlauncher_plugin_cmd_cmd_has_been_executed_times"), m.Value);
result.SubTitle = string.Format(context.API.GetTranslation("flowlauncher_plugin_cmd_cmd_has_been_executed_times"), m.Value);
return null;
}
var ret = new Result
{
Title = m.Key,
SubTitle = string.Format(_context.API.GetTranslation("flowlauncher_plugin_cmd_cmd_has_been_executed_times"), m.Value),
SubTitle = string.Format(context.API.GetTranslation("flowlauncher_plugin_cmd_cmd_has_been_executed_times"), m.Value),
IcoPath = Image,
Action = c =>
{
@ -134,7 +134,7 @@ namespace Flow.Launcher.Plugin.Shell
{
Title = cmd,
Score = 5000,
SubTitle = _context.API.GetTranslation("flowlauncher_plugin_cmd_execute_through_shell"),
SubTitle = context.API.GetTranslation("flowlauncher_plugin_cmd_execute_through_shell"),
IcoPath = Image,
Action = c =>
{
@ -152,7 +152,7 @@ namespace Flow.Launcher.Plugin.Shell
.Select(m => new Result
{
Title = m.Key,
SubTitle = string.Format(_context.API.GetTranslation("flowlauncher_plugin_cmd_cmd_has_been_executed_times"), m.Value),
SubTitle = string.Format(context.API.GetTranslation("flowlauncher_plugin_cmd_cmd_has_been_executed_times"), m.Value),
IcoPath = Image,
Action = c =>
{
@ -234,13 +234,13 @@ namespace Flow.Launcher.Plugin.Shell
{
var name = "Plugin: Shell";
var message = $"Command not found: {e.Message}";
_context.API.ShowMsg(name, message);
context.API.ShowMsg(name, message);
}
catch(Win32Exception e)
{
var name = "Plugin: Shell";
var message = $"Error running the command: {e.Message}";
_context.API.ShowMsg(name, message);
context.API.ShowMsg(name, message);
}
}
@ -275,7 +275,7 @@ namespace Flow.Launcher.Plugin.Shell
public void Init(PluginInitContext context)
{
this._context = context;
this.context = context;
context.API.GlobalKeyboardEvent += API_GlobalKeyboardEvent;
}
@ -301,7 +301,7 @@ namespace Flow.Launcher.Plugin.Shell
private void OnWinRPressed()
{
_context.API.ChangeQuery($"{_context.CurrentPluginMetadata.ActionKeywords[0]}{Plugin.Query.TermSeperater}");
context.API.ChangeQuery($"{context.CurrentPluginMetadata.ActionKeywords[0]}{Plugin.Query.TermSeperater}");
Application.Current.MainWindow.Visibility = Visibility.Visible;
}
@ -312,12 +312,12 @@ namespace Flow.Launcher.Plugin.Shell
public string GetTranslatedPluginTitle()
{
return _context.API.GetTranslation("flowlauncher_plugin_cmd_plugin_name");
return context.API.GetTranslation("flowlauncher_plugin_cmd_plugin_name");
}
public string GetTranslatedPluginDescription()
{
return _context.API.GetTranslation("flowlauncher_plugin_cmd_plugin_description");
return context.API.GetTranslation("flowlauncher_plugin_cmd_plugin_description");
}
public List<Result> LoadContextMenus(Result selectedResult)
@ -326,7 +326,7 @@ namespace Flow.Launcher.Plugin.Shell
{
new Result
{
Title = _context.API.GetTranslation("flowlauncher_plugin_cmd_run_as_different_user"),
Title = context.API.GetTranslation("flowlauncher_plugin_cmd_run_as_different_user"),
Action = c =>
{
Task.Run(() =>Execute(ShellCommand.RunAsDifferentUser, PrepareProcessStartInfo(selectedResult.Title)));
@ -336,13 +336,23 @@ namespace Flow.Launcher.Plugin.Shell
},
new Result
{
Title = _context.API.GetTranslation("flowlauncher_plugin_cmd_run_as_administrator"),
Title = context.API.GetTranslation("flowlauncher_plugin_cmd_run_as_administrator"),
Action = c =>
{
Execute(Process.Start, PrepareProcessStartInfo(selectedResult.Title, true));
return true;
},
IcoPath = Image
IcoPath = "Images/admin.png"
},
new Result
{
Title = context.API.GetTranslation("flowlauncher_plugin_cmd_copy"),
Action = c =>
{
Clipboard.SetDataObject(selectedResult.Title);
return true;
},
IcoPath = "Images/copy.png"
}
};

View file

@ -4,7 +4,7 @@
"Name": "Shell",
"Description": "Provide executing commands from Flow Launcher. Commands should start with >",
"Author": "qianlifeng",
"Version": "1.1.2",
"Version": "1.2.0",
"Language": "csharp",
"Website": "https://github.com/Flow-Launcher/Flow.Launcher",
"ExecuteFileName": "Flow.Launcher.Plugin.Shell.dll",