Ejemplo n.º 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (checkBox4.Checked)
            {
                string[] strs = { textBox3.Text.ToString() };
                File.WriteAllLines(@"telnumber.txt", strs);
            }

            if (config.checkBox1.Checked)
            {
                Run.only_window = true;
            }
            else
            {
                Run.only_window = false;
            }
            if (config.checkBox2.Checked)
            {
                Run.only_computer = true;
            }
            else
            {
                Run.only_computer = false;
            }

            if (button1.Text == "开始抢座")
            {
                comboBox1.Enabled = false;
                comboBox2.Enabled = false;
                comboBox3.Enabled = false;
                comboBox4.Enabled = false;
                comboBox5.Enabled = false;
                button1.Enabled   = false;

                //保存配置信息
                string[] strsC = { config.comboBox4.SelectedIndex.ToString(), config.comboBox5.SelectedIndex.ToString(), config.comboBox1.SelectedIndex.ToString(), config.comboBox2.SelectedIndex.ToString(), config.comboBox3.SelectedIndex.ToString() };
                File.WriteAllLines(@"configuration.txt", strsC);

                backgroundWorker2.RunWorkerAsync();
                RushSeat.stop_waiting = false;
                Run.roomID            = comboBox4.SelectedValue.ToString();
                Run.startTime         = comboBox2.SelectedValue.ToString();
                Run.endTime           = comboBox3.SelectedValue.ToString();
                //在22:45之前预约明天的
                if (Config.config.comboBox1.SelectedIndex == 1 && DateTime.Compare(DateTime.Now, Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 22:44:50")) < 0)
                {
                    button1.Text = "结束等待";
                    Run.date     = comboBox1.SelectedValue.ToString();
                    //防止系统拥堵,不同等级加入不同延迟
                    Random rd = new Random();

                    /****这里保留了对D级用户的尊重****/
                    //if (rank == 'C')
                    //    Run.waitsecond = rd.Next(7, 10); //
                    //else if (rank == 'A')
                    //    Run.waitsecond = 0;
                    //else if (rank == 'B')
                    //    Run.waitsecond = rd.Next(3, 5); //
                    //else
                    //{
                    //    Run.waitsecond = 3600;
                    //}

                    //RushSeat.Wait("22", "45", Run.waitsecond.ToString());
                    textBox1.AppendText("将于22:44:50重新获取登录令牌\r\n");
                    RushSeat.Wait("22", "44", "50");
                    Thread.Sleep(1000);
                    //如果是用户停止等待
                    if (RushSeat.stop_waiting)
                    {
                        //RushSeat.stop_waiting = false;
                        return;
                    }
                    //正常等待结束,重新登录
                    string response = RushSeat.GetToken(true);
                    if (response == "Success")
                    {
                        textBox1.AppendText("重新获取登录令牌成功!\r\n");
                        if (rank == 'A')
                        {
                            RushSeat.WaitNew("22", "44", "59");
                        }
                        else
                        {
                            //18-12-24 现在所有用户处于同一起跑线上
                            RushSeat.WaitNew("22", "44", "59");
                        }

                        //极速模式,此模式下不作任何其它判断,直接抢想要的座位
                        if (comboBox4.SelectedIndex != 0 && comboBox4.SelectedIndex != 1 && comboBox4.SelectedIndex != 2 && comboBox5.SelectedIndex != 0 && checkBox6.Checked == true)
                        {
                            for (int i = 0; i < 20; i++)
                            {
                                if (RushSeat.BookSeat(comboBox5.SelectedValue.ToString(), Run.date, Run.startTime, Run.endTime) == "Success")
                                {
                                    //textBox1.AppendText("急速模式下抢座成功!\r\n");
                                    //静默检查预约信息,激活释放按钮
                                    RushSeat.CheckHistoryInf(false);

                                    //窗口弹出
                                    if (Config.config.Visible != true)
                                    {
                                        Config.config.Visible = true;
                                    }
                                    Config.config.WindowState = FormWindowState.Normal;

                                    //发短信
                                    if (Config.config.checkBox4.Checked)
                                    {
                                        Config.config.textBox1.AppendText("短信已发送,返回值:\r\n" + RushSeat.SendMessage() + "\r\n");
                                        Config.config.textBox1.AppendText("若返回值小于0为发送失败,请联系开发者\r\n");
                                        Config.config.textBox1.AppendText("------------------------------------------\r\n");
                                    }

                                    if (Config.config.checkBox3.Checked)
                                    {
                                        Config.config.textBox1.AppendText("2min后自动关机\r\n");
                                        Config.config.textBox1.AppendText("如果想取消自动关机请在桌面用快捷键win + R启动控制台, 在控制台自行输入 shutdown -a\r\n");
                                        Config.config.textBox1.AppendText("-----------------------------------------------------\r\n");
                                        Process.Start("shutdown.exe", "-s -t " + "120");
                                    }
                                    else
                                    {
                                        //Config.config.textBox1.AppendText("订座成功");
                                    }

                                    Config.config.button1.Text      = "开始抢座";
                                    Config.config.comboBox1.Enabled = true;
                                    Config.config.comboBox2.Enabled = true;
                                    Config.config.comboBox3.Enabled = true;
                                    Config.config.comboBox4.Enabled = true;
                                    Config.config.comboBox5.Enabled = true;

                                    return;
                                }
                                //0.5s后再次尝试抢倾向座位
                                textBox1.AppendText("急速抢座失败,0.5s后再次尝试...");
                                Thread.Sleep(500);
                            }
                            textBox1.AppendText("急速抢座失败,转入普通模式");
                        }

                        //如果是用户停止等待
                        if (RushSeat.stop_waiting)
                        {
                            //RushSeat.stop_waiting = false;
                            return;
                        }
                        //启动抢座进程
                        Run.Start();
                    }
                    else
                    {
                        textBox1.AppendText("重新获取登录令牌失败,相应信息如下:\r\n");
                        textBox1.AppendText(response);
                    }
                }
                //在1点之前预约今天的
                else if (DateTime.Compare(DateTime.Now, Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 01:00:00")) < 0 && Config.config.comboBox1.SelectedIndex == 0)
                {
                    button1.Text = "结束等待";
                    Run.date     = comboBox1.SelectedValue.ToString();
                    Random rd = new Random();
                    if (rank == 'C')
                    {
                        Run.waitsecond = rd.Next(7, 10);
                    }
                    else if (rank == 'A')
                    {
                        Run.waitsecond = rd.Next(0, 2);
                    }
                    else if (rank == 'B')
                    {
                        Run.waitsecond = rd.Next(3, 5);
                    }
                    else
                    {
                        Run.waitsecond = 3600;
                    }
                    RushSeat.Wait("01", "00", Run.waitsecond.ToString());
                    //如果是用户停止等待
                    if (RushSeat.stop_waiting)
                    {
                        //RushSeat.stop_waiting = false;
                        return;
                    }
                    //正常等待结束,重新登录
                    string response = RushSeat.GetToken(true);
                    if (response == "Success")
                    {
                        textBox1.AppendText("再次登录成功!\r\n");
                        Run.Start();
                    }
                    else
                    {
                        textBox1.AppendText(response);
                    }
                }

                //在1:00 之后 22:00之前预约今天的
                else if (DateTime.Compare(DateTime.Now, Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 01:00:00")) > 0 && DateTime.Compare(DateTime.Now, Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 22:00:00")) < 0 && Config.config.comboBox1.SelectedIndex == 0)
                {
                    button1.Text = "结束抢座";
                    Run.date     = comboBox1.SelectedValue.ToString();
                    Run.Start();
                }
                //在22:45之后 23:50之前预约明天的
                else if (DateTime.Compare(DateTime.Now, Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 22:45:00")) > 0 && Config.config.comboBox1.SelectedIndex == 1 && DateTime.Compare(DateTime.Now, Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 23:50:00")) < 0)
                {
                    button1.Text = "结束抢座";
                    Run.date     = comboBox1.SelectedValue.ToString();
                    Run.Start();
                }
                //在23:50后预约明天的
                else if (DateTime.Compare(DateTime.Now, Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 23:50:00")) > 0)
                {
                    textBox1.AppendText("预约时间已过");
                }
                return;
            }
            if (button1.Text == "结束等待")
            {
                comboBox1.Enabled = true;
                comboBox2.Enabled = true;
                comboBox3.Enabled = true;
                comboBox4.Enabled = true;
                comboBox5.Enabled = true;
                button1.Enabled   = false;
                backgroundWorker2.RunWorkerAsync();
                RushSeat.CheckHistoryInf(false);
                RushSeat.stop_waiting = true;
                button1.Text          = "开始抢座";
                return;
            }
            if (button1.Text == "结束抢座")
            {
                comboBox1.Enabled = true;
                comboBox2.Enabled = true;
                comboBox3.Enabled = true;
                comboBox4.Enabled = true;
                comboBox5.Enabled = true;
                button1.Enabled   = false;
                backgroundWorker2.RunWorkerAsync();
                RushSeat.CheckHistoryInf(false);
                RushSeat.stop_rush = true;
                button1.Text       = "开始抢座";
                return;
            }
        }
Ejemplo n.º 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            RushSeat.studentID = textBox1.Text.ToString();
            RushSeat.password  = textBox2.Text.ToString();

            if (checkBox1.Checked)
            {
                string[] strs = { DES.EncryptDES(textBox1.Text.ToString(), "shAurora"), DES.EncryptDES(textBox2.Text.ToString(), "shAurora") };
                File.WriteAllLines(@"userInfo.txt", strs);
            }

            Hide();
            Config config = new Config();

            config.Show();

            string response = "empty";
            int    tryNum = 1, col = 0;

            while (response != "Success" && tryNum != 5)
            {
                response = RushSeat.GetToken(true);
                if (response == "Success")
                {
                    //Hide();
                    //Config config = new Config();
                    //config.Show();
                    col = 1;


                    config.textBox1.AppendText("登录成功!\n");
                    Config.config.textBox1.AppendText("---------------------------------------\n");
                    //获取各个房间的座位列表
                    config.comboBox4.SelectedIndex = 0;
                    config.comboBox2.SelectedIndex = 4;  //默认10点开始
                    config.comboBox1.SelectedIndex = 1;
                    //加载
                    if (File.Exists(@"configuration.txt"))
                    {
                        Config.strC = File.ReadAllLines(@"configuration.txt");
                        config.comboBox4.SelectedIndex = Convert.ToInt32(Config.strC[0]);
                        config.comboBox5.SelectedIndex = Convert.ToInt32(Config.strC[1]);
                        config.comboBox1.SelectedIndex = Convert.ToInt32(Config.strC[2]);
                        config.comboBox2.SelectedIndex = Convert.ToInt32(Config.strC[3]);
                        config.comboBox3.SelectedIndex = Convert.ToInt32(Config.strC[4]);
                    }
                    RushSeat.GetUserInfo();
                    if (RushSeat.CheckHistoryInf(true) == "NO")
                    {
                        config.textBox1.AppendText("当前无有效预约\n");
                    }
                    else  //已经有有效预约
                    {
                    }
                    Config.config.textBox1.AppendText("剩余可发送短信数目:" + RushSeat.GetSMSNum() + "\n");
                    Config.config.textBox1.AppendText("---------------------\n");
                }
                else
                {
                    config.textBox1.AppendText("第" + tryNum + "次登录失败,3s后重试\n");
                    config.textBox1.AppendText("[info]" + response + "\n");
                    for (int i = 0; i < 10; i++)
                    {
                        Application.DoEvents();
                        //防止控件假死
                        Thread.Sleep(300);
                    }
                    tryNum++;
                }
            }
            if (col == 0)
            {
                config.textBox1.AppendText("尝试登录失败次数过多,请检查网络连接或服务器状态");
            }
        }