示例#1
0
        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);
                }
            }
        }
示例#2
0
        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;
                    }
                }
            }
        }
示例#3
0
文件: Macro.cs 项目: nordie92/Makru
        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();
                }
            }
        }