/// <summary> /// 扫描仪设置 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Setting_Click(object sender, RoutedEventArgs e) { if (!initFlag) { InitDataSrcList(); configFlag = false; } bool failedFlag = false;//函数执行错误标志 try { //查询用户选择的扫描仪名称 string selectedName = GetSelectedScannerName(); if (selectedName == null) { MessageBox.Show("在进行参数配置前请先选择扫描仪"); failedFlag = true; return; } else { //将扫描仪选择当前DSM管理的扫描仪 if (!twSession.SelectAsCurrentDS(selectedName)) { MessageBox.Show("设置扫描仪失败,扫描仪可能不存在"); failedFlag = true; return; } //调用扫描仪自带界面 if (UISelected.IsChecked == true) { //弹出扫描仪自带的参数设置界面 string info = null; twSession.PrepareDS(out info, false); twSession.EnableDSUIOnly(out info); //检查控件是否加载了消息处理函数 if (!msgfilter) { msgfilter = true; ComponentDispatcher.ThreadFilterMessage += new ThreadMessageEventHandler(MessageFilter); messageLogger.Debug("加载消息处理函数。"); } } //调用参数设置统一界面 else if (UISelected.IsChecked == false) { //生成并初始化参数配置界面 ScanConfig scanConfig = new ScanConfig(); if (!scanConfig.Init(twSession, capList)) { scanConfig.Close(); MessageBox.Show("初始化扫描仪失败,请确定扫描仪与计算机连接正常"); failedFlag = true; return; } scanConfig.ShowDialog(); configFlag = (bool)scanConfig.DialogResult; } else { logger.Debug("UISelected.IsChecked = ?"); } } } catch (Exception exp) { logger.Error("在与扫描仪交互过程中发生异常,异常信息: " + exp.Message); MessageBox.Show("在与扫描仪交互过程中发生异常,详细信息请查看日志"); failedFlag = true; } finally { if (failedFlag) { if (twSession.State >= TwState.OpenDS) { twSession.DisableDS(); } EndingScan(); } } }