2013-08-12 3 views
2

Я пытался создать плагин FireBreath, который фиксирует отпечатки пальцев со сканером. Этот код работает отлично, как только консольное приложение (минус boost threading).Как захватить отпечаток пальца с помощью биометрической рамки Windows в Firebreath

bool GopripFPrintAPI::winCaptureFPrint(const FB::JSObjectPtr& callback) 
{ 
    boost::thread t(boost::bind(&GopripFPrintAPI::WBFCapture_thread, this, callback)); 

    return true; 
} 

int GopripFPrintAPI::WBFCapture_thread(const FB::JSObjectPtr& callback) 
{ 

    unsigned long resultHandle = S_OK; 
    WINBIO_SESSION_HANDLE sessionHandle = NULL; 
    WINBIO_UNIT_ID unitId = 0; 
    WINBIO_REJECT_DETAIL rejectDetail = 0; 
    PWINBIO_BIR sample = NULL; 
    SIZE_T sampleSize = 0; 

    // Connect to the system pool. 
    resultHandle = WinBioOpenSession( 
     WINBIO_TYPE_FINGERPRINT, // Service provider 
     WINBIO_POOL_SYSTEM,   // Pool type 
     WINBIO_FLAG_RAW,   // Access: Capture raw data 
     NULL,      // Array of biometric unit IDs 
     0,       // Count of biometric unit IDs 
     WINBIO_DB_DEFAULT,   // Default database 
     &sessionHandle    // [out] Session handle 
    ); 

    // Capture a biometric sample. 
    wprintf_s(L"\n Calling WinBioCaptureSample - Swipe sensor...\n"); 
    resultHandle = WinBioCaptureSample(
     sessionHandle, 
     WINBIO_NO_PURPOSE_AVAILABLE, 
     WINBIO_DATA_FLAG_RAW, 
     &unitId, 
     &sample, 
     &sampleSize, 
     &rejectDetail 
    ); 
    ... 
} 

вызова winCaptureFPrint() правильно запускает WBFCapture_thread() и прекращает ожидание в WinBioCaptureSample(), но с использованием сканеров отпечатков пальцев делает метод ничего winBioCaptureSample() не похоже, чтобы получить сигнал от сканера. Я думал, что это, вероятно, проблема с фокусом, поэтому я пробовал

resultHandle = WinBioAcquireFocus() 

Но это всегда терпит неудачу. Он дает отказ в доступе общего доступа с ошибкой E_ACCESSDENIED. Есть ли что-то в FireBreath в фокусе, что я не знаю, или я делаю что-то еще неправильно?

+0

Вы решили, что вы isuue? У меня такая же проблема ^^. –

+0

Нет. Мне пришлось отказаться от firebreath, так как я не мог заставить его работать с WBF или neurotechnologys Verifinger SDK. – Burvix

ответ

0

Установите биометрические устройства Authentec так датчики будут слушать ваш код

+0

Ну, я не использую сканер отпечатков Authentecs, и, как я сказал в своем первом предложении, WBF прослушивает мой код в тестовом приложении вне Firebreath. – Burvix

0

Run Visual Studio в качестве администратора, и он должен работать.