| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using NTwain;
- using NTwain.Data;
- using HXX.Scanner.Common;
- using HXX.Scanner.Biz.Socket;
- namespace HXX.Scanner.Biz
- {
- public class biz_pop2
- {
- private DataSource source = null;
- private TwainSession session = null;
- private bool flag = false;
- public void scan(Device_Scanner scanner,System.Windows.Forms.Form main_window)
- {
- session = new TwainSession(DataGroups.Image);
- session.DataTransferred += Session_DataTransferred;
- session.DeviceEvent += Session_DeviceEvent;
- session.SourceChanged += Session_SourceChanged;
- session.TransferCanceled += Session_TransferCanceled;
- session.TransferError += Session_TransferError;
- session.TransferReady += Session_TransferReady;
- session.PropertyChanged += Session_PropertyChanged;
- session.SourceDisabled += Session_SourceDisabled;
- session.StateChanged += Session_StateChanged;
- session.Open();
- // 2. 获取设备列表(3.7.6 官方唯一方式)
- var sources = session.GetSources();
- //source = sources[index];
- foreach(var ss in sources)
- {
- if (ss.Name == scanner.deviceName)
- {
- source = ss;
- }
- }
- // 3. 选择设备(用默认扫描仪,不弹选择框)
- //DataSource source = sources.FirstOrDefault();
- if (source == null)
- {
- //MessageBox.Show("未找到扫描仪");
- session.Close();
- return;
- }
- // 4. 打开设备
- source.Open();
- // 5. 弹出驱动设置窗口(你要的功能!)
- source.Enable(SourceEnableMode.ShowUI, false, main_window.Handle);
- // 6. 关闭
- //source.Close();
- //session.Close();
- }
- private void Session_StateChanged(object sender, EventArgs e)
- {
- if (session.State >= 5)
- {
- flag = true;
- }
- if (flag)
- {
- if (session.State == 4)
- {
- try
- {
- source.Close();
- session.Close();
- }
- catch (Exception ee)
- {
- }
- }
- }
- }
- private void Session_SourceDisabled(object sender, EventArgs e)
- {
- var aa = 1;
- }
- private void Session_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
- {
- var nn = e.PropertyName;
- var aa = 1;
- }
- private void Session_TransferReady(object sender, TransferReadyEventArgs e)
- {
- var aa = 1;
- }
- private void Session_TransferError(object sender, TransferErrorEventArgs e)
- {
- var aa = 1;
- }
- private void Session_TransferCanceled(object sender, TransferCanceledEventArgs e)
- {
- var aa = 1;
- }
- private void Session_SourceChanged(object sender, EventArgs e)
- {
- var aa = 1;
- }
- private void Session_DeviceEvent(object sender, DeviceEventArgs e)
- {
- var aa = 1;
- }
- private void Session_DataTransferred(object sender, DataTransferredEventArgs e)
- {
- var aa = 1;
- }
- public void close()
- {
- try
- {
- source.Close();
- session.Close();
- }
- catch (Exception ee)
- {
- LogManager.WriteLog(ee);
- }
- }
- }
- }
|