Невозможно захватить данные изображения с помощью Windows Biometric Framework

Я разрабатываю биометрический модуль с использованием WBF. Я использую код, указанный в Winbio CaptureSampleImage, для получения данных изображения, которые преобразуются в файл.bmp и сохраняются. Я создал DLL-файл, содержащий весь код, связанный с моей работой с WBF. Я использую эту DLL в приложении Java Spring Boot с использованием JNI. Созданный таким образом jar запускается через файл.vbs, как показано ниже.

Set shellObj = CreateObject("Shell.Application")
shellObj.ShellExecute "C:\Program Files\Java\jre1.8.0_192\bin\java.exe", "-jar MyApp.jar", "", "runas", 0

"runas" используется для запуска jar с правами администратора. "0" используется, чтобы сделать его невидимым.

Ранее я использовал DLL в Jar, работающем как сервис с использованием WINSW. Для этого я включил WinBio AcquireFocus после создания сеанса, как упоминалось в WinBio AcquireFocus и Winbio CaptureSampleImage, и он отлично работает.

Теперь у меня два сценария.

1) Я использую код из Winbio CaptureSampleImage. Этот подход застревает при вызове подписки.

hr = WinBioCaptureSample(
            sessionHandle,
            WINBIO_NO_PURPOSE_AVAILABLE,
            WINBIO_DATA_FLAG_RAW,
            &unitId,
            &sample,
            &sampleSize,
            &rejectDetail
            );

то есть вывод не возвращается.

2) Я использую WinBio AcquireFocus так же, как и со своим сервисом.

Это вызывает ошибку:

Код: 0x80070005 (доступ запрещен).

Общие значения HRESULT приведены ЗДЕСЬ. Вероятно, это связано с тем, что AcquireFocus нельзя использовать в таком приложении, как мое.

0 ответов

Другие вопросы по тегам