IAccessible(MSAA):访问Firefox / Chrome导致Adobe Accessibility.api调用

时间:2018-11-27 09:09:05

标签: c++ google-chrome firefox adobe-reader iaccessible

我注意到在Process Monitor中,通过IAccessible(MSAA)接口访问Mozilla Firefox导致文件访问名为“ Accessibility.api”的Adobe Reader文件。当我使用Microsoft的Inspect.exe(使用MSAA)访问Mozilla Firefox时,没有这些文件访问权限。

这是代码(C ++),导致对“ Accessibility.api”文件的大约28次访问:

CComPtr<IAccessible> mainElement;
::AccessibleObjectFromWindow(mainWindowHandle, static_cast<DWORD>(OBJID_CLIENT), IID_IAccessible, reinterpret_cast<void**>(&mainElement));

每次::AccessibleChildrenIEnumVariant::Next调用也会导致每个子元素大约28次访问。

如何防止像Inspect.exe这样的文件访问?

更新2018-11-30

我在Chrome上获得了相同的结果。

在这些浏览器中未将Adobe Reader作为插件安装。

我试图重命名Accessible.api文件(位于C:\ Program Files(x86)\ Adob​​e \ Acrobat Reader DC \ Reader \ plug_ins \ Accessibility.api中)以将其禁用,但此后我无法访问浏览器元素了。生成的子元素有所不同。 Inspect.exe(使用MSAA)或Ranorex Spy(不带浏览器扩展名)没有这些问题。我也用AccProbe检查了结果,该工具产生了与我相同的结果。

更新2018-12-03

这似乎仅影响32位应用程序。 Inspect.exe和Ranorex Spy是64位应用程序。我的应用程序以及AccProbe(已安装的JRE是32位)都是32位。因为Adobe Reader是32位的,所以我认为这就是仅32位应用程序受到影响的原因。我还可以使用32位版本的Ranorex Spy重现此行为。

现在,我知道该行为不是由错误的实现引起的。但是为什么要对这个Adobe Reader Accessibility.api文件进行如此多的访问的问题仍然悬而未决...

0 个答案:

没有答案