Neetesh_Ch Ответов: 1

Использование библиотеки DLL Zkemkeeper из SDK для биометрического сканера в службе Windows


Привет Команда,

Я купил ваш SDK для биометрического сканера у дилера из Индии.

Я использую zkemkeeper.dll, в то время как биометрический сканер взаимодействовать с кодом на C#.

Я использую обработчик OnAttTransactionExEventHandler для получения обновления при нажатии пальцем на терминал. Это прекрасно работает при взаимодействии с кодом, написанным в Windows Forms.

Вопрос:

Когда я использую этот же обработчик событий, с помощью службы Windows, написанной с помощью кода C#.
Обработчик не работает, т. е. при нажатии пальцем на биометрический терминал метод обработчика не срабатывает.
Я также использую regEvent(свойство DeviceID,1) для всех OnAttTransaction/OnAttTransactionEx и также используется regEvent(идентификатора устройства,65532) для регистрации всех событий, но все равно та же проблема.
Я написал весь код в OnStart(), биометрическая машина также подключается, но обработчик не запускается.

Нужна Работа:

Я создал службу windows, которая будет запущена на 64-разрядной машине windows 7.
Я использовал биометрический сканер с SDK 6.0.3.3 и zkemkeeper.dll версии 2.0.0.1. когда пользователь помещает палец на сканер, OnAttTransactionExEventHandler должен выстрелить, чтобы выполнить действие, написанное в этом методе.

Пожалуйста, помогите мне, так как я застрял в этом вопросе.

Заранее спасибо,
Нитеш

jose raymundo aviles rios

можете ли вы научить меня горячим работам?

1 Ответов

Рейтинг:
1

Achmad Mulyadi

Попробовать это:

myCZKEMClass = new CZKEMClass();

Thread createComAndMessagePumpThread = new Thread(() =>
{
    myCZKEMClass.Connect_Net("192.168.1.20", 4370);


    if (myCZKEMClass.RegEvent(1, 65535))
    {
        myCZKEMClass.OnAttTransactionEx += new _IZKEMEvents_OnAttTransactionExEventHandler(myCZKEMClass_OnAttTransactionEx);
    }

    Application.Run();
});
createComAndMessagePumpThread.SetApartmentState(ApartmentState.STA);

createComAndMessagePumpThread.Start();

eventLog1.WriteEntry("Service Started");

Поместите код внутри метода запуска службы. Вам нужно добавить ссылку на систему.Окна.Библиотека форм.
Но у этого SDK, похоже, есть еще одна проблема, событие перестанет работать через пару минут, если вы позволите службе простаивать (то же самое произошло и с WinForms). Я не уверен, что только у меня была эта проблема, но образцы кода дали мне тот же результат.


jose raymundo aviles rios

ты можешь научить меня, как это делается?