/// <summary> /// プラグインを選択して起動 /// </summary> private void LaunchPlugin() { var plugins = this.Core.Plugins; var listDialog = new SelectorWindow(); listDialog.Owner = this.View; listDialog.WindowStartupLocation = WindowStartupLocation.CenterOwner; plugins.ForEach(y => listDialog.List.Add(y)); if (listDialog.ShowDialog() == true) { try { var index = listDialog.Index; var plugin = plugins.FromIndexOrDefault(index); if (plugin != null) { this.Core.LaunchPluginUI(plugin); } } catch (Exception e) { MessageBox.Show(e.ToString()); } } }
/// <summary> /// ファイルを選択してマクロを実行 /// </summary> private void StartMacro() { var dialog = new OpenFileDialog(); dialog.Filter = "C# code(*.cs)|*.cs|All Files(*.*)|*.*"; if (dialog.ShowDialog() != true) { return; } var path = dialog.FileName; var text = ""; try { text = new TextLoader().Load(path); } catch (Exception e) { MessageBox.Show(e.GetType().FullName + ": " + e.Message); return; } var blocks = new CodeReader().GetBlocks(text); var name = ""; var code = ""; if (blocks == null || blocks.Length <= 0) { name = System.IO.Path.GetFileName(path); code = text; } else { var index = 0; if (blocks.Length > 1) { var listDialog = new SelectorWindow(); listDialog.Owner = this.View; listDialog.WindowStartupLocation = WindowStartupLocation.CenterOwner; blocks.ForEach(y => listDialog.List.Add(y)); if (listDialog.ShowDialog() == true) { index = listDialog.Index; } else { return; } } name = blocks[index].Name; code = blocks[index].Code; } var player = this.Core.MacroPlayer; var sc = new ScriptMacro(name, code); this.ScrollToBottom(); try { player.Start(sc); } catch (Exception e) { this.WriteNotice(e.ToString(), false, LogTypes.Error); } }