private void tsmiNewWriteFIle_Click(object sender, EventArgs e) { Macro m = Macro.GetMacroByChild(m_selectedNode); FormCommandWriteFile frm = new FormCommandWriteFile("", "", true, m); if (frm.ShowDialog() == DialogResult.OK) { CommandWriteFile c = new CommandWriteFile(frm.FileName, frm.Text, frm.AppendFile, m); if (m_selectedNode.Name == "commands") { m_selectedNode.Nodes.Insert(0, c); } else { m_selectedNode.Parent.Nodes.Insert(m_selectedNode.Index + 1, c); } } }
private void tvMakros_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { tvMakros.SelectedNode = e.Node; if (e.Button == MouseButtons.Left) { if (e.Node.GetType() == typeof(CommandWait)) { CommandWait c = (CommandWait)tvMakros.SelectedNode; FormCommandWait frm = new FormCommandWait(c.Duration); if (frm.ShowDialog() == DialogResult.OK) { c.Duration = frm.WaitDuration; } } else if (e.Node.GetType() == typeof(ActivatorShortcut)) { ActivatorShortcut a = (ActivatorShortcut)e.Node; FormActivatorShortcut frm = new FormActivatorShortcut(a.Shortcut, a.LoopexEcution); if (frm.ShowDialog() == DialogResult.OK) { a.Shortcut.Keys = frm.Shortcut.Keys; a.Shortcut = a.Shortcut; a.LoopexEcution = frm.LoopExecution; } } else if (e.Node.GetType() == typeof(ActivatorTime)) { ActivatorTime a = (ActivatorTime)e.Node; FormActivatorTime frm = new FormActivatorTime(a.TriggerTime, a.TriggerInterval); if (frm.ShowDialog() == DialogResult.OK) { a.TriggerTime = frm.TriggerTime; a.TriggerInterval = frm.TriggerInterval; } } else if (e.Node.GetType() == typeof(CommandInput)) { Macro m = Macro.GetMacroByChild(m_selectedNode); FormCommandInput frm = new FormCommandInput((CommandInput)e.Node, m); if (frm.ShowDialog() == DialogResult.OK) { e.Node.Parent.Nodes.Insert(e.Node.Index, frm.CommandInput); e.Node.Remove(); } } else if (e.Node.GetType() == typeof(ConditionNode)) { Macro m = Macro.GetMacroByChild(tvMakros.SelectedNode); ConditionNode cn = (ConditionNode)e.Node; FormCondition frm = null; if (cn.Condition != null) { frm = new FormCondition(cn.Condition, m); } else { frm = new FormCondition(m); } if (frm.ShowDialog() == DialogResult.OK) { cn.Condition = frm.Condition; } } else if (e.Node.GetType() == typeof(CommandSetVariable)) { CommandSetVariable c = (CommandSetVariable)m_selectedNode; Macro m = Macro.GetMacroByChild(c); FormCommandSetVariable frm = new FormCommandSetVariable((c.Variable != null ? c.Variable.Name : ""), c.Output, m); if (frm.ShowDialog() == DialogResult.OK) { c.Variable = frm.Variable; c.Output = frm.Output; } } else if (e.Node.GetType() == typeof(CommandReplayMakro)) { CommandReplayMakro c = (CommandReplayMakro)m_selectedNode; FormCommandReplayMacro frm = new FormCommandReplayMacro(c.MacroName); if (frm.ShowDialog() == DialogResult.OK) { c.MacroName = frm.MacroName; } } else if (e.Node.GetType() == typeof(CommandWriteFile)) { Macro m = Macro.GetMacroByChild(m_selectedNode); CommandWriteFile c = (CommandWriteFile)m_selectedNode; FormCommandWriteFile frm = new FormCommandWriteFile(c.FileName, c.FileText, c.AppendFile, m); if (frm.ShowDialog() == DialogResult.OK) { c.FileName = frm.FileName; c.FileText = frm.Text; c.AppendFile = frm.AppendFile; } } } }
private void ReadJSONCommand(dynamic json, TreeNode currentNode, int index) { dynamic d; try { d = json.commands; } catch (RuntimeBinderException) { d = json; } foreach (dynamic command in d) { switch ((string)command.type) { case "KeyDown": CommandInput ci1 = new CommandInput(CommandType.KeyDown, command.keyCode.ToObject <Keys>(), 0, 0, false, false, this); currentNode.Nodes.Add(ci1); break; case "KeyUp": CommandInput ci2 = new CommandInput(CommandType.KeyUp, command.keyCode.ToObject <Keys>(), 0, 0, false, false, this); currentNode.Nodes.Add(ci2); break; case "MouseDown": CommandInput ci3 = new CommandInput(CommandType.MouseDown, Keys.None, command.x.ToObject <int>(), command.y.ToObject <int>(), false, (command.button.ToObject <string>() == "right" ? true : false), this); currentNode.Nodes.Add(ci3); break; case "MouseUp": CommandInput ci4 = new CommandInput(CommandType.MouseUp, Keys.None, command.x.ToObject <int>(), command.y.ToObject <int>(), false, (command.button.ToObject <string>() == "right" ? true : false), this); currentNode.Nodes.Add(ci4); break; case "MouseMove": CommandInput ci41 = new CommandInput(CommandType.MouseMove, Keys.None, command.x.ToObject <int>(), command.y.ToObject <int>(), false, false, this); currentNode.Nodes.Add(ci41); break; case "MouseWheel": CommandInput ci5 = new CommandInput(CommandType.MouseWheel, Keys.None, command.x.ToObject <int>(), command.y.ToObject <int>(), (command.wheelDirection.ToObject <string>() == "up" ? true : false), false, this); currentNode.Nodes.Add(ci5); break; case "wait": CommandWait ci6 = new CommandWait(command.duration.ToObject <int>(), this); currentNode.Nodes.Add(ci6); break; case "condition": CommandCondition ci8 = new CommandCondition(); currentNode.Nodes.Add(ci8); foreach (dynamic j in command.conditions) { ci8.Nodes[0].Nodes.Add(new ConditionNode(ReadJSONCondition(j))); } ReadJSONCommand(command.thenCommands, ci8.Nodes[1], 0); ReadJSONCommand(command.elseCommands, ci8.Nodes[2], 0); break; case "replayMacro": CommandReplayMakro ci9 = new CommandReplayMakro((string)command.name, this); currentNode.Nodes.Add(ci9); break; case "setVariable": Variable v = new Variable((string)command.variable, ""); this.Variables.Add(v); CommandSetVariable ci10 = new CommandSetVariable(v, ReadJSONOutput(command.output), this); currentNode.Nodes.Add(ci10); break; case "writeFile": string fileName = (string)command.fileName; fileName = fileName.Replace("\\\\", "\\"); CommandWriteFile ci11 = new CommandWriteFile(fileName, (string)command.text, (bool)command.appendFile, this); currentNode.Nodes.Add(ci11); break; default: throw new NotImplementedException(); } } }