Example #1
0
        private void drawBtn_Click(object sender, RoutedEventArgs e)
        {
            if (cookieTBox.Text == "")
            {
                System.Windows.Forms.MessageBox.Show("Cookie please");
                return;
            }
            if (ImageFilePath == "" || !File.Exists(ImageFilePath))
            {
                System.Windows.Forms.MessageBox.Show("Image please");
                return;
            }

            var settings = new DrawHelper.DrawSettings();

            settings.Cookie    = cookieTBox.Text;
            settings.ImagePath = ImageFilePath;
            try {
                settings.ImageStartX = Convert.ToInt32(imgStartXTBox.Text);
                settings.ImageStartY = Convert.ToInt32(imgStartYTBox.Text);
                settings.StartX      = Convert.ToInt32(startXTBox.Text);
                settings.StartY      = Convert.ToInt32(startYTBox.Text);
            }
            catch {
                System.Windows.Forms.MessageBox.Show("检查坐标是否为整数.");
                return;
            }
            settings.Finished          = new Action <int, int>((x, y) => this.Dispatcher.Invoke(() => logBox.Text += string.Format("绘制到点({0}, {1}), 已完成绘制.\n", new object[] { x, y })));
            settings.Started           = new Action(() => this.Dispatcher.Invoke(() => logBox.Text += "开始绘画.\n"));
            settings.DrawPixelCallback = new Action <bool, bool, string, int>((isSuccess, isStop, message, i) => this.Dispatcher.Invoke(() => {
                if (isSuccess)
                {
                    logBox.Text += string.Format("成功绘制第{0}个像素, ", i);
                }
                else
                {
                    logBox.Text += string.Format("绘制第{0}个像素失败, ", i);
                }
                if (!isStop)
                {
                    logBox.Text += message;
                }
                else
                {
                    logBox.Text += string.Format("由于错误, 已停止绘制, 错误信息: {0}\n", message);
                }
            }));
            DrawHelper.DrawHelper.DrawAsync(settings);
        }
        private void drawBtn_Click(object sender, RoutedEventArgs e)
        {
            // 停止按钮
            try {
                if (DrawHelper.DrawHelper.IsDrawing)
                {
                    if (DrawHelper.DrawHelper.StopDrawing())
                    {
                        drawBtn.Content = "开始画吧";
                    }
                    else
                    {
                        System.Windows.Forms.MessageBox.Show("好像出现了什么错误");
                        return;
                    }
                }

                // 判断输入内容
                var cookie = GetCookieStr();
                if (cookie == "")
                {
                    System.Windows.Forms.MessageBox.Show("检查cookie");
                    return;
                }

                if (cookie == "")
                {
                    System.Windows.Forms.MessageBox.Show("Cookie please");
                    return;
                }
                if (ImageFilePath == "" || !File.Exists(ImageFilePath))
                {
                    System.Windows.Forms.MessageBox.Show("Image please");
                    return;
                }

                var settings = new DrawHelper.DrawSettings();
                settings.Cookie    = cookie;
                settings.ImagePath = ImageFilePath;
                try {
                    settings.ImageStartX = Convert.ToInt32(imgStartXTBox.Text);
                    settings.ImageStartY = Convert.ToInt32(imgStartYTBox.Text);
                    settings.StartX      = Convert.ToInt32(startXTBox.Text);
                    settings.StartY      = Convert.ToInt32(startYTBox.Text);
                }
                catch {
                    System.Windows.Forms.MessageBox.Show("检查坐标是否为整数.");
                    return;
                }

                if (settings.StartX > 1280 || settings.StartX < 0 || settings.StartY > 720 || settings.StartY < 0)
                {
                    System.Windows.Forms.MessageBox.Show("坐标越界了.");
                    return;
                }

                // 检查Cookie
                //var r = Regex.Match(cookieTBox.Text, @"(.+?=.+?;\s{0,2}){3,}(.+?=.+)").Value == cookieTBox.Text;
                //if (!r) {
                //    System.Windows.Forms.MessageBox.Show("检查cookie");
                //    return;
                //}

                // 添加Callback
                settings.Finished = new Action <int, int>((x, y) => this.Dispatcher.Invoke(() => {
                    Log(string.Format("绘制到点({0}, {1}), 已完成绘制.\n", new object[] { x, y }));
                    stateBar.Text   = "已完成.";
                    drawBtn.Content = "开始画吧";
                }));
                settings.Started = new Action(() => this.Dispatcher.Invoke(() => {
                    Log("开始绘画.\n");
                    stateBar.Text = "开始绘画.";
                }));
                settings.DrawPixelCallback = new Action <bool, bool, string, int>((isSuccess, isStop, message, i) => this.Dispatcher.Invoke(() => {
                    if (isSuccess)
                    {
                        Log(string.Format("成功绘制第{0}个像素, ", i));
                        stateBar.Text = string.Format("成功绘制第{0}个像素, ", i);
                    }
                    else
                    {
                        Log(string.Format("绘制第{0}个像素失败, ", i));
                        stateBar.Text = string.Format("绘制第{0}个像素失败, ", i);
                    }

                    if (!isStop)
                    {
                        Log(message);
                    }
                    else
                    {
                        Log(string.Format("由于错误, 已停止绘制, 错误信息: {0}\n", message));
                        stateBar.Text = "由于错误, 已停止绘制";
                        System.Windows.Forms.MessageBox.Show(string.Format("由于错误, 已停止绘制, 错误信息: {0}\n", message));
                    }
                }));
                if (DrawHelper.DrawHelper.DrawWithNewThread(settings))
                {
                    drawBtn.Content = "停止";
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show("好像出现了什么错误");
                }
            }
            catch (Exception ex) {
                Log(ex.ToString());
                System.Windows.Forms.MessageBox.Show("好像出现了什么奇怪的错误, 详情请检查日志.");
            }
        }