bool IMessageFilter.PreFilterMessage(ref Message m) { TwainCommand cmd = tw.PassMessage(ref m); if (cmd == TwainCommand.Not) { return(false); } switch (cmd) { case TwainCommand.CloseRequest: { EndingScan(); tw.CloseSrc(); break; } case TwainCommand.CloseOk: { EndingScan(); tw.CloseSrc(); break; } case TwainCommand.DeviceEvent: { break; } case TwainCommand.TransferReady: { int ImgNumber = 0; ArrayList pics = tw.TransferPictures(); EndingScan(); tw.CloseSrc(); picnumber++; if (!this.mnShowImages.Checked) { if (oBatch.Find(_CompanyID, _CustomerID, _Teacher)) { ImgNumber = oBatch._ImageFinal; } oBatch._ImageInitial = 1; oBatch.CompanyID = _CompanyID; oBatch.CustomerID = _CustomerID; } int i; for (i = 0; i < pics.Count; i++) { IntPtr img = (IntPtr)pics[i]; if (this.mnShowImages.Checked) { PicForm newpic = new PicForm(img); newpic.MdiParent = this; //Panel.Controls.Add((Control)newpic); int picnum = ImgNumber + i + 1; //newpic.Text = "ScanPass" + picnumber.ToString() + "_Pic" + picnum.ToString(); newpic.Text = "Order" + picnumber.ToString() + "_Pic" + picnum.ToString(); newpic.Show(); } else { bmprect = new Rectangle(0, 0, 0, 0); bmpptr = GlobalLock(img); pixptr = GetPixelInfo(bmpptr); int picnum = ImgNumber + i + 1; //Gdip.SavePicToFile("ScanPass" + picnum.ToString() + ".tiff", bmpptr, pixptr); Gdip.SavePicToFile("Images/Order-" + _CompanyID.PadLeft(2, '0') + _CustomerID.PadLeft(4, '0') + _Batch.PadLeft(3, '0') + picnum.ToString().PadLeft(4, '0') + ".tif", bmpptr, pixptr); } } if (!this.mnShowImages.Checked) { //Save Batch Here oBatch._ImageFinal = ImgNumber + i; oBatch._NumberImages += i; oBatch.Teacher = _Teacher; oBatch.Save(); } break; } default: { return(false); } } return(true); }
bool IMessageFilter.PreFilterMessage(ref Message m) { string sFileImage = ""; TwainCommand cmd = tw.PassMessage(ref m); if (cmd == TwainCommand.Null) { //EndingScan(); return(false); } if (cmd == TwainCommand.Not) { return(false); } switch (cmd) { case TwainCommand.CloseRequest: EndingScan(); tw.CloseSrc(); break; case TwainCommand.CloseOk: EndingScan(); tw.CloseSrc(); break; case TwainCommand.DeviceEvent: break; case TwainCommand.TransferReady: IntPtr img; ArrayList pics = tw.TransferPictures(); EndingScan(); tw.CloseSrc(); for (int i = 0; i < pics.Count; i++) { img = (IntPtr)pics[i]; PicForm newpic = new PicForm(img); int picnum = i + 1; } if (pics.Count > 0) { sFileImage = getFileImage().Trim(); try { if (!Directory.Exists(ImagePath)) { DirectoryInfo di = Directory.CreateDirectory(ImagePath); } string filepath = ImagePath + @"\" + sFileImage.Trim(); Gdip.SaveDIBAsFile(filepath, PicForm.bmpptr, PicForm.pixptr); Image picForCheck = Image.FromFile(filepath); if (picForCheck != null) { System.IO.FileInfo file = new System.IO.FileInfo(filepath); CheckAndSaveImage(picForCheck, file); } } catch { } } else { MessageBox.Show("Ошибка сканирования!"); } break; } return(true); }