//松开鼠标键触发的事件
        private void mh_MouseUpEvent(object sender, MouseEventArgs e)
        {
            if (!IsStart)
            {
                return;
            }
            t2 = timeTickRecord;
            p2 = e.Location;
            string text = "";

            if (t2 - t1 <= 20 && p1 == p2)
            {
                text += timeToString() + "\n完成了点击动作";
            }
            else
            if (p1 == p2)
            {
                text += timeToString() + "\n完成了长按动作";
            }
            else
            {
                text += timeToString() + "\n完成了拖动动作";
            }

            if (e.Button == MouseButtons.Left)
            {
                text += "(左键)";
            }
            if (e.Button == MouseButtons.Right)
            {
                text += "(右键)";
                //SendKeys.Send("{}");
            }
            if (p1 != p2)
            {
                text += "\n\t" + "拖动鼠标从:(x:" + p1.X + ",y:" + p1.Y + ")\n\t到(x:" + p2.X + ",y:" + p2.Y + ")位置\n";
            }
            else if (t2 - t1 > 20)
            {
                text += "(x:" + p1.X + ",y:" + p1.Y + ")\n\t" + "长按了:" + timeToString(t2 - t1) + "\n";
            }
            else
            {
                text += "(x:" + p1.X + ",y:" + p1.Y + ")\n";
            }
            text += "============\n";
            richTextBox1.Text = text + richTextBox1.Text;
            RightTag          = false;
            LeftTag           = false;
            p1 = new Point(0, 0);
            p2 = new Point(0, 0);
            dateArr.Add(Date1.create(timeTickRecord,
                                     Date1.IsMouseOrKeyboard.Mouse,
                                     Date1.IsUpOrDown.Up,
                                     e));
        }
 private void timer1_Tick(object sender, EventArgs e)
 {
     timeTickRecord++;
     timeTickConst = 1000 / this.timer1.Interval;
     label1.Text   = timeToString();
     if (mh != null)
     {
         var e2 = new MouseEventArgs(MouseButtons.None, 0, p3.X, p3.Y, 0);
         dateArr.Add(Date1.create(timeTickRecord,
                                  Date1.IsMouseOrKeyboard.Mouse,
                                  Date1.IsUpOrDown.Move,
                                  e2));
     }
 }
 //按下鼠标键触发的事件
 private void mh_MouseDownEvent(object sender, MouseEventArgs e)
 {
     if (!IsStart)
     {
         return;
     }
     if (e.Button == MouseButtons.Left)
     {
         LeftTag = true;
     }
     if (e.Button == MouseButtons.Right)
     {
         RightTag = true;
     }
     p1 = e.Location;
     t1 = timeTickRecord;
     dateArr.Add(Date1.create(timeTickRecord,
                              Date1.IsMouseOrKeyboard.Mouse,
                              Date1.IsUpOrDown.Down,
                              e));
 }
        private void Hook_MouseWheelExt(object sender, MouseEventExtArgs e)
        {
            if (!IsStart)
            {
                return;
            }
            string text = "";

            if (e.Delta > 0)        //鼠标滚轮向前
            {
                text += "滚轮向上移动";
            }
            else
            {
                text += "滚轮向下移动";
            }
            text += "\n============\n";
            richTextBox1.Text = text + richTextBox1.Text;

            dateArr.Add(Date1.create(timeTickRecord,
                                     Date1.IsMouseOrKeyboard.Mouse,
                                     Date1.IsUpOrDown.Wheel,
                                     e));
        }
        void DownData(int mainkey)
        {
            string sql;

            //获取动作长度
            sql = "SELECT mainKey FROM data" + mainkey + " ORDER BY mainKey DESC LIMIT 1;";
            MySqlDataReader mySql = SQLManage.GetReader(sql);

            mySql.Read();
            int size = (int)mySql[0];

            SQLManage.closeConn();

            //弹出加载窗口
            Form9 form9 = new Form9("正在下载动作......");

            form9.progressBar1.Maximum = size;
            form9.progressBar1.Step    = 1;
            form9.Show();

            //创建临时动作保存
            List <Date1> date1 = new List <Date1>();

            sql   = "SELECT * FROM data" + mainkey + " ORDER BY mainKey;";
            mySql = SQLManage.GetReader(sql);
            while (mySql.Read())
            {
                //将数据库的动作读取出来

                long x1 = (long)mySql[1];
                Date1.IsMouseOrKeyboard x2 = (Date1.IsMouseOrKeyboard)mySql[2];
                Date1.IsUpOrDown        x3 = (Date1.IsUpOrDown)mySql[3];
                if (x2 == Date1.IsMouseOrKeyboard.Keyboard)
                {
                    Keys x4 = (Keys)mySql[4];
                    date1.Add(Date1.create(
                                  x1,
                                  x2,
                                  x3,
                                  new KeyEventArgs(x4)
                                  ));
                }
                if (x2 == Date1.IsMouseOrKeyboard.Mouse)
                {
                    MouseButtons x5 = (MouseButtons)mySql[5];
                    int          x6 = (int)mySql[6];
                    int          x7 = (int)mySql[7];
                    int          x8 = (int)mySql[8];
                    date1.Add(Date1.create(
                                  x1,
                                  x2,
                                  x3,
                                  new MouseEventArgs(x5, 0, x6, x7, x8)
                                  ));
                }
                //进度条往前一格
                form9.progressBar1.PerformStep();
            }
            //读取完毕
            SQLManage.closeConn();

            //读取动作名称长度介绍等信息
            sql   = "SELECT * FROM amainform WHERE mainKey = " + mainkey + ";";
            mySql = SQLManage.GetReader(sql);
            mySql.Read();
            formName    = (string)mySql[1];
            formTime    = (string)mySql[2];
            formMessage = (string)mySql[3];
            SQLManage.closeConn();
            form9.Close();
            form9.Dispose();

            //同步主窗口和本窗口的数据
            dates                = date1;
            mainForm.dates       = date1;
            mainForm.formName    = formName;
            mainForm.formTime    = formTime;
            mainForm.formMessage = formMessage;

            MessageBox.Show(formName + "\n动作下载完成");
        }
        void duqu()
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter          = "动作信息文件(*.dodata)|*.dodata|所有文件|*.*";
            ofd.ValidateNames   = true;
            ofd.CheckPathExists = true;
            ofd.CheckFileExists = true;
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                string strFileName = ofd.FileName;
                //其他代码
                string[] lines = System.IO.File.ReadAllLines(strFileName);
                int      mod   = 1;

                //MessageBox.Show("读取成功");
                foreach (string line in lines)
                {
                    if (mod == 1 && !"《未加密动作信息》".Equals(line))
                    {
                        MessageBox.Show("警告!该文件非动作信息!");
                        return;
                    }
                    else if (mod == 1)
                    {
                        mod   = 2;
                        dates = new List <Date1>();
                        continue;
                    }
                    if (mod == 2)
                    {
                        formName = line;
                        mod++;
                        continue;
                    }
                    if (mod == 3)
                    {
                        formTime    = line;
                        formMessage = "";
                        mod++;
                        continue;
                    }
                    string temp = "<!===================================!>";

                    if (mod == 4 && !temp.Equals(line))
                    {
                        formMessage += line;
                        continue;
                    }
                    else if (mod == 4)
                    {
                        mod = 5;
                        continue;
                    }
                    if (mod == 5)
                    {
                        string[] str = line.Split(',');
                        long     x1  = long.Parse(str[0]);
                        Date1.IsMouseOrKeyboard x2 = (Date1.IsMouseOrKeyboard) int.Parse(str[1]);
                        Date1.IsUpOrDown        x3 = (Date1.IsUpOrDown) int.Parse(str[2]);
                        if (x2 == Date1.IsMouseOrKeyboard.Keyboard)
                        {
                            Keys x4 = (Keys)int.Parse(str[3]);
                            dates.Add(Date1.create(
                                          x1,
                                          x2,
                                          x3,
                                          new KeyEventArgs(x4)
                                          ));
                        }
                        if (x2 == Date1.IsMouseOrKeyboard.Mouse)
                        {
                            MouseButtons x5 = (MouseButtons)int.Parse(str[3]);
                            int          x6 = int.Parse(str[4]);
                            int          x7 = int.Parse(str[5]);
                            int          x8 = int.Parse(str[6]);
                            dates.Add(Date1.create(
                                          x1,
                                          x2,
                                          x3,
                                          new MouseEventArgs(x5, 0, x6, x7, x8)
                                          ));
                        }
                    }
                }
            }
        }