//检查图像状态 /*返回值为含三个值得int数组,定义如下: * [0,0,0] 未读到图 * [1,x,y] 有messagebox窗口,x,y为坐标 * [2,2,2] messagebox窗口未知错误 * [3,3,3] 未找到定位区域(右测试按钮) * [4,4,4] 未知错误 * [5,a,b] 查询到测试窗体,其中a和b的值只有0,1,2,3,4; * 当a=0表示上窗体初始状态,=1测试中,=2测试成功,=3测试失败,=4未知状态 * 当b=0表示下窗体初始状态,=1测试中,=2测试成功,=3测试失败,=4未知状态 */ private int[] CheckImageStatus() { try { for (int i = 0; i < 5; i++) { //截屏 if (PrintImage.PrintBitImage(bmpfile)) { break; } if (i == 4) { Log("截图失败"); return(null); } Thread.Sleep(500); } //调用函数 object[] parm = new object[1]; parm[0] = bmpfile; lock (m_objDll) { Log(DateTime.Now.ToString() + ", 处理图像开始"); //判断是否处于结束态, 调用HALCON函数 int[] res = (int[])(m_dicMethod[MyData.halconCheckImageStatusName].Invoke(obj, parm)); Log(DateTime.Now.ToString() + ", 处理图像结束"); Log("图像状态:【" + res[0].ToString() + ", " + res[1].ToString() + ", " + res[2].ToString() + "】"); return(res); } } catch (Exception ex) { Log(ex.Message); } return(null); }
private void Run() { DateTime dt = DateTime.Now; string filename = Application.StartupPath + @"\" + // dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + "_" + // dt.Hour.ToString() + dt.Minute.ToString() + dt.Second.ToString() + ".bmp"; string.Format("{0,0:D4}{1,0:D2}{2,0:D2}_{3,0:D2}{4,0:D2}{5,0:D2}.bmp", dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second); Thread.Sleep(300); if (!PrintImage.PrintBitImage(filename)) { MessageBox.Show("截图失败"); return; } if (File.Exists(filename)) { if (this.IsHandleCreated) { this.Invoke(new EventHandler(delegate { //this.WindowState = FormWindowState.Normal; pictureBox1.ImageLocation = filename; textBox_capture.Text = filename; })); } } else { if (this.IsHandleCreated) { this.Invoke(new EventHandler(delegate { //this.WindowState = FormWindowState.Normal; pictureBox1.ImageLocation = null; textBox_capture.Text = filename; })); } } Application.DoEvents(); }