Ejemplo n.º 1
0
        public void SelectDevice()
        {
            List <string> availableReaders = this.ListReaders();

            if (availableReaders.Count == 0)
            {
                return;
            }

            this.RdrState         = new Card.SCARD_READERSTATE();
            readername            = availableReaders[0].ToString();//selecting first device
            this.RdrState.RdrName = readername;

            states                  = new Card.SCARD_READERSTATE[1];
            states[0]               = new Card.SCARD_READERSTATE();
            states[0].RdrName       = readername;
            states[0].UserData      = IntPtr.Zero.ToInt32();
            states[0].RdrCurrState  = Card.SCARD_STATE_EMPTY;
            states[0].RdrEventState = 0;
            states[0].ATRLength     = 0;
            states[0].ATRValue      = null;

            if (availableReaders.Count > 0)
            {
                this._worker = new BackgroundWorker();
                this._worker.WorkerSupportsCancellation = true;
                this._worker.DoWork += WaitChangeStatus;
                this._worker.RunWorkerAsync();
            }
        }
Ejemplo n.º 2
0
        public void SelectDevice()
        {
            List <string> availableReaders = this.ListReaders();

            this.RdrState         = new Card.SCARD_READERSTATE();
            readername            = availableReaders[0].ToString();//selecting first device
            this.RdrState.RdrName = readername;
        }
Ejemplo n.º 3
0
        public void SelectDevice()
        {
            List <string> availableReaders = this.ListReaders();

            try {
                this.RdrState         = new Card.SCARD_READERSTATE();
                readername            = availableReaders[0].ToString();//selecting first device
                this.RdrState.RdrName = readername;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Ejemplo n.º 4
0
        private SmartcardManager()
        {
            this._context = 0;
            this.EstablishContext();
            ArrayList availableReaders = this.ListReaders();

            this._readerCount   = availableReaders.Count;
            this._state         = new Card.SCARD_READERSTATE();
            this._state.RdrName = availableReaders[0].ToString();

            if (availableReaders.Count > 0)
            {
                this._worker = new BackgroundWorker();
                this._worker.WorkerSupportsCancellation = true;
                this._worker.DoWork += WaitChangeStatus;
                this._worker.RunWorkerAsync();
            }
        }
Ejemplo n.º 5
0
        private void Dispose(bool disposing)
        {
            if (!this._disposed)
            {
                if (disposing)
                {
                    // Free other state (managed objects).
                }

                //Free your own state (unmanaged objects).
                //Set large fields to null.
                this._state = new Card.SCARD_READERSTATE();
                this._worker.CancelAsync();
                this._worker.Dispose();
                this._context = 0;
            }
            this._disposed = true;
        }
Ejemplo n.º 6
0
    public void Watch()
    {
        this.RdrState         = new Card.SCARD_READERSTATE();
        readername            = GetReadersList()[0];
        this.RdrState.RdrName = readername;

        states                  = new Card.SCARD_READERSTATE[1];
        states[0]               = new Card.SCARD_READERSTATE();
        states[0].RdrName       = readername;
        states[0].UserData      = 0;
        states[0].RdrCurrState  = Card.SCARD_STATE_EMPTY;
        states[0].RdrEventState = 0;
        states[0].ATRLength     = 0;
        states[0].ATRValue      = null;
        this._worker            = new BackgroundWorker();
        this._worker.WorkerSupportsCancellation = true;
        this._worker.DoWork += WaitChangeStatus;
        this._worker.RunWorkerAsync();
    }