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("好像出现了什么奇怪的错误, 详情请检查日志."); } }