我正在使用 WBF 开发生物识别模块。我正在使用Winbio CaptureSampleImage提供的代码来获取转换为 .bmp 文件并保存的图像数据。我创建了一个 DLL 文件,其中包含与我使用 WBF 相关的所有代码。我在使用JNI的 Java Spring Boot 应用程序中使用这个 DLL 。由此创建的 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”用于将其设置为不可见。
我以前曾在使用WINSW作为服务运行的 Jar 中使用DLL 。为此,我在创建WinBio AcquireFocus和Winbio CaptureSampleImage中提到的会话后包括了WinBio AcquireFocus ,它工作得非常好。
现在我有两个场景。
1)我使用Winbio CaptureSampleImage中提供的代码。调用以下方法时,此方法会卡住。
hr = WinBioCaptureSample(
sessionHandle,
WINBIO_NO_PURPOSE_AVAILABLE,
WINBIO_DATA_FLAG_RAW,
&unitId,
&sample,
&sampleSize,
&rejectDetail
);
即不返回任何输出。
2)我使用WinBio AcquireFocus就像我使用我的服务一样。
这提示错误:
代码:0x80070005(拒绝访问)。
常见的 HRESULT 值在此处给出。这可能是因为 AcquireFocus 不能在我的应用程序中使用。