Невозможно захватить данные изображения с помощью 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 нельзя использовать в таком приложении, как мое.