Beispiel #1
0
        ///////////////////////////////////////////////////////////////////////////////
        // Public Methods...
        ///////////////////////////////////////////////////////////////////////////////
        #region Public Methods...

        /// <summary>
        /// Initialize interesting stuff...
        /// </summary>
        /// <param name="a_displaycallback">display callback function or null</param>
        /// <param name="a_stopnotification">notification that we've stopped monitoring</param>
        /// <param name="m_confirmscan">confirmation function or null</param>
        /// <param name="a_blNoDevices">true if we have no devices</param>
        public Scanner
        (
            ResourceManager a_resourcemanager,
            TwainLocalScannerDevice.DisplayCallback a_displaycallback,
            TwainLocalScannerDevice.ConfirmScan a_confirmscan,
            float a_fConfirmScanScale,
            out bool a_blNoDevices
        )
        {
            bool   blUseSane;
            string szExecutablePath = null;
            string szReadFolder     = null;
            string szWriteFolder    = null;

            // Init stuff...
            a_blNoDevices     = true;
            m_resourcemanager = a_resourcemanager;
            m_displaycallback = a_displaycallback;
            m_confirmscan     = a_confirmscan;

            // Get the config and command line argument values...
            szExecutablePath = Config.Get("executablePath", "");
            szReadFolder     = Config.Get("readFolder", "");
            szWriteFolder    = Config.Get("writeFolder", "");
            blUseSane        = (Config.Get("usesane", null) != null);

            // Sanity check...
            if (!FindTwainDirectOnTwain(szExecutablePath, blUseSane))
            {
                if (blUseSane)
                {
                    Log.Error("Unable to locate TwainDirect.OnSane.exe");
                    throw new Exception("Unable to locate TwainDirect.OnSane.exe");
                }
                else
                {
                    Log.Error("Unable to locate TwainDirect.OnTwain.exe");
                    throw new Exception("Unable to locate TwainDirect.OnTwain.exe");
                }
            }

            // Get our TWAIN Local interface...
            m_twainlocalscannerdevice = new TwainLocalScannerDevice(a_confirmscan, a_fConfirmScanScale, Display, true);
            if (m_twainlocalscannerdevice == null)
            {
                Log.Error("Failed to create TwainLocalScanner");
                throw new Exception("Failed to create TwainLocalScanner");
            }

            // Do we have any devices?
            a_blNoDevices = RefreshDeviceList();
        }
Beispiel #2
0
        ///////////////////////////////////////////////////////////////////////////////
        // Public Methods...
        ///////////////////////////////////////////////////////////////////////////////
        #region Public Methods...

        /// <summary>
        /// Init stuff...
        /// </summary>
        /// <param name="a_resourcemanager"></param>
        public FormSetup
        (
            FormMain a_formmain,
            ResourceManager a_resourcemanager,
            Scanner a_scanner,
            TwainLocalScannerDevice.DisplayCallback a_displaycallback,
            bool a_blConfirmScan
        )
        {
            // Init the component...
            InitializeComponent();
            this.MinimizeBox = false;
            this.MaximizeBox = false;
            Config.ElevateButton(m_buttonManageTwainLocal.Handle);
            m_checkboxStartNpm.Checked = (Config.Get("startNpm", "true") == "true");
            this.FormClosing          += new FormClosingEventHandler(FormSetup_FormClosing);
            m_displaycallback          = a_displaycallback;

            // Populate the cloud api root combobox...
            int ii = 0;

            CloudManager.CloudInfo cloudinfo;
            m_comboboxCloudApiRoot.Items.Clear();
            for (cloudinfo = CloudManager.GetCloudInfo(ii);
                 cloudinfo != null;
                 cloudinfo = CloudManager.GetCloudInfo(++ii))
            {
                m_comboboxCloudApiRoot.Items.Add(cloudinfo.szName);
            }
            if (m_comboboxCloudApiRoot.Items.Count > 0)
            {
                m_comboboxCloudApiRoot.Text = (string)m_comboboxCloudApiRoot.Items[0];
            }

            // Remember stuff...
            m_formmain        = a_formmain;
            m_resourcemanager = a_resourcemanager;
            m_scanner         = a_scanner;
            m_checkboxConfirmation.Checked = a_blConfirmScan;

            // Localize...
            this.Text = Config.GetResource(m_resourcemanager, "strFormMainTitle");                                       // TWAIN Direct: TWAIN Bridge
            m_buttonManageTwainLocal.Text = Config.GetResource(m_resourcemanager, "strButtonTwainLocalManagerEllipsis"); // Manage Local...
            m_buttonCloudRegister.Text    = Config.GetResource(m_resourcemanager, "strButtonCloudRegisterEllipsis");     // Register Cloud...
            m_buttonManageCloud.Text      = Config.GetResource(m_resourcemanager, "strButtonManageCloudEllipsis");       // Manage Cloud...
            m_buttonRegister.Text         = Config.GetResource(m_resourcemanager, "strButtonRegisterEllipsis");          // Register...
            m_checkboxRunOnLogin.Text     = Config.GetResource(m_resourcemanager, "strCheckboxRunOnLogin");              // Run on login
            m_labelCurrentDriver.Text     = Config.GetResource(m_resourcemanager, "strLabelCurrentDriver");              // Current Driver:
            m_labelCurrentNote.Text       = Config.GetResource(m_resourcemanager, "strLabelCurrentNote");                // Current Note:

            // Set stuff...
            m_textboxCurrentDriver.Text = m_formmain.GetTwainLocalTy();
            m_textboxCurrentNote.Text   = m_formmain.GetTwainLocalNote();

            LoadRegisteredCloudDevices();

            // Are we registered for autorun?
            string      szValueName = null;
            string      szCommand   = "";
            RegistryKey registrykeyRun;

            // Check the local machine (needed for legacy)...
            registrykeyRun = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
            foreach (string sz in registrykeyRun.GetValueNames())
            {
                string szValue = Convert.ToString(registrykeyRun.GetValue(sz));
                if (szValue.ToLowerInvariant().Contains("twaindirect.scanner.exe"))
                {
                    szValueName = sz;
                    szCommand   = szValue;
                    break;
                }
            }

            // Check the local user...
            if (string.IsNullOrEmpty(szValueName))
            {
                registrykeyRun = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
                foreach (string sz in registrykeyRun.GetValueNames())
                {
                    string szValue = Convert.ToString(registrykeyRun.GetValue(sz));
                    if (szValue.ToLowerInvariant().Contains("twaindirect.scanner.exe"))
                    {
                        szValueName = sz;
                        szCommand   = szValue;
                        break;
                    }
                }
            }

            // Looks like we're set...
            if (!string.IsNullOrEmpty(szCommand))
            {
                m_checkboxRunOnLogin.Checked = true;
                if (szCommand.Contains("startmonitoring=true"))
                {
                    m_checkboxAdvertise.Checked = true;
                }
                if (szCommand.Contains("confirmscan=true"))
                {
                    m_checkboxConfirmation.Checked = true;
                }
            }

            // Okay, we can let this happen now...
            m_blSkipUpdatingTheRegistry = false;
        }