问题标签 [accessibility-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
782 浏览

c# - 如何检测对oleacc.dll的访问是否失败

我有一个应用程序将使用 oleacc.dll 来获取其他正在运行的 Windows 应用程序文本。在我的客户端中,我发现了对 oleacc.dll 的访问被拒绝或失败,并且我的应用程序无法获取正在运行的应用程序文本的情况。我不知道为什么在我的客户端访问 oleacc.dll 被拒绝。

经过对OLEACC.DLL的研究,发现oleacc.dll错误可能是由以下原因引起的:

  1. Windows 更新可能会删除此 dll 无法准确找到导致此问题的特定更新。
  2. 防病毒软件、注册表清理器或助推器可能会损坏或删除此 dll,例如;AVG、Zone Alarm Internet Security Suite 安装
  3. 病毒、木马和恶意软件感染已损坏或删除它例如;木马:Win 32/Agent E 恶意软件:Win32/Cnzz
  4. oleacc.dll 注册表项无效或损坏
  5. Microsoft 硬件故障,例如损坏的硬盘驱动器损坏了 oleacc.dll 文件
  6. 另一个程序覆盖了所需版本的 oleacc.dll
  7. 另一个程序恶意或错误地删除了 oleacc.dll 文件
  8. 另一个程序卸载了 oleacc.dll 文件。

我的应用程序的主要缺点是,它不知道对 oleacc.dll 的访问是否正常 - 因此我的应用程序运行但不会抓取,用户无法知道它是否抓取文本。

所以,我想知道有没有办法检查对 oleacc.dll 的访问是否失败。一旦检测到,我的应用程序可以向用户发出警报并自动从我的应用程序注册 oleacc.dll(使用 regsvr32 命令)。

代码:

IAccessible acc = null;

int retval = AccessibleObjectFromWindow( hWnd, 0, IID_IAccessible.ToByteArray(), ref acc );

谢谢普拉卡什

0 投票
0 回答
792 浏览

android - AccessibilityManager.interrupt() 究竟做了什么?

正如 Android 开发者“文档”中经常发生的那样,这个函数的描述非常模糊:

http://developer.android.com/reference/android/view/accessibility/AccessibilityManager.html#interrupt()

请求所有无障碍服务的反馈中断。

有没有人确切地知道它的作用,它的作用是什么以及它会持续多长时间?例如,启用 TalkBack 和 Explore On Touch 后,这会打断当前正在说出的话语,还是会在活动生命周期的剩余时间内关闭服务?

另外,“请求”是什么意思?这是否意味着请求可能不被满足?如果是,在哪些情况下,以及如何检查它是否成功?

0 投票
1 回答
2393 浏览

android - Android 无障碍服务焦点 EditText

我正在编写无障碍服务。我一直试图以弹出软件键盘的方式集中 EditText 字段,但我没有成功。我能够将光标移到 EditText 字段中,但没有弹出软键盘。鉴于 EditTextNode 是我从各种可访问性事件中获得的 AccessibilityNodeInfo,并且当我尝试所有这些操作时,说 nodeInfo isEditable、isFocusable、isVisibleToUser 和 isClickable,它们在完成后都返回 true。

在我看来,上述内容应该可以正常工作,而且事实上它不是 Accessibility API 中的一个错误,如果不是针对我的整个 android 版本,至少在我的设备上(Droid Ultra,Android 4.4.4)。我也试过:

将焦点放在字段中,以便我可以看到输入光标,但没有键盘。

除非启用对讲,否则不会真正做任何事情。

连同适当的参数,这将起作用,但前提是 editText 字段中已经存在文本。我还需要在空文本字段上拉起键盘。是的,我尝试为开始和结束文本选择参数输入 0,0。SET_SELECTION 方法仅适用于字段中的文本!

困扰了我几天,希望各位大神帮忙。虽然我相信我偶然发现了一个错误,并且将不得不等待 Android 更新。因为 ACTION_CLICK 方法应该是真正需要的。但是,我可能会遗漏一些愚蠢的东西,Accessibility API Doc 有点少。我愿意尝试任何事情。

0 投票
1 回答
1005 浏览

java - 通过 Accessibility 服务传递数据以查看 - Android

我想在辅助功能服务中更改 EditText 内的文本。我的代码是:

而且效果很好。当用户按下 EditText 时,它会变为“TestData”。之后显示带有按钮的对话框。我想通过按下按钮来更改文本。

如果按下按钮,剪贴板会刷新,但 EditText 内的文本不会。

0 投票
2 回答
4366 浏览

google-chrome - 使用 RunAs 启动 chrome 时出现“Chrome 旧窗口”

我正在尝试使用 MSAA(在 Win7 上)在 chrome 浏览器中获取地址栏并将其替换为不同的 url。当chrome正常启动时(作为登录用户),我可以通过遍历进程拥有的窗口类的UI树来使用IAccessible接口找到地址栏。但是,如果我以其他用户身份启动 chrome(通过在 Windows 中使用 RunAs),我会在浏览“RunAs”进程拥有的类时看到名称为“chrome legacy window”的窗口。如果我扫描以登录用户身份运行的进程,则窗口层次结构和其中的内容与我看到的大不相同。

虽然我可以在两个浏览器实例中看到(窗口类名)Chrome_WidgetWin_0 和 Chrome_WidgetWin_1,但只有以当前用户身份运行的实例才可以访问地址栏。关于以不同用户身份启动 chrome 时会发生什么的任何想法?是否有任何解决方法或者我应该寻找不同的技术?

0 投票
1 回答
101 浏览

macos - 由于沙盒问题,Mac App 被拒绝

我的 Mac App 被拒绝,原因如下:

“这个版本的应用程序不仅解决了错误修复和新的 OS X 功能采用,因此它必须在 2012 年 6 月 1 日实施沙盒”

我很困惑,因为在提交的应用程序的先前版本中,我没有做任何与沙盒相关的事情并且它得到了批准。所以,不知道为什么这次被拒绝了。

当我向苹果提出问题时,他们只是不断重复上述信息。

所以,请指导我。

如果您需要更多信息来理解这个问题,请告诉我。

0 投票
0 回答
744 浏览

android - TYPE_WINDOWS_CHANGED 无障碍服务

在棒棒糖中有一个名为 TYPE_WINDOWS_CHANGED 的新可访问性事件,但是当我在我的 xml 配置文件中使用它时,我收到来自 Android Studio 的错误。是否可以仅通过代码添加它?我错过了什么吗?

0 投票
2 回答
1939 浏览

android - event.getSource() 在 android 中返回 null 可访问性

我尝试使用 DashLane 之类的辅助功能服务或其他使用辅助功能服务的应用程序来填充 EditText 字段。

我正在使用以事件视图为中心的。当 EditText 获得焦点时,事件开始但getSource()返回 null。

代码:

...而且我尝试了其他一些会出错的方法。所以这里的一个问题是为什么它返回null?

安卓清单

可访问性.xml

0 投票
2 回答
2537 浏览

objective-c - 如何将辅助功能与沙盒应用程序一起使用?

OS X 有一个不错的功能,例如 Accessibility API,它允许从您的应用程序代码中控制一些系统元素和其他应用程序。但是打开沙盒后它就停止工作了。必须将应用程序提交到商店才能打开沙盒。

苹果是这么说的:

使用 App Sandbox,您可以并且应该启用您的应用程序的可访问性,如本文档中所述。但是,您不能对屏幕阅读器等辅助应用程序进行沙箱处理,也不能对控制另一个应用程序的应用程序进行沙箱处理。

但是 App Store 有一些使用 Accessibility API 的应用程序:

  • Cinch – 调整窗口大小
  • BetterSnapTool - 相同
  • PopClip – 获取选中的文本

所以这意味着可以同时使用 Sandbox/Accessibility API/App Store,但是如何呢?

0 投票
2 回答
2809 浏览

android - 如何在片段视图中激活对讲?

我目前正在将可访问性添加为我的应用程序中的一项新功能。我的目标是用户将使用Android 集成的TalkBack服务对其进行导航。

一切都运行良好,因为我正在我的活动布局内的元素上设置内容描述,即

这样,每次显示我的活动时,TalkBack 都会读取内容描述值。

仅使用一项在其上推送多个片段的活动,我并没有取得同样的成功。因此,如果我尝试在片段布局内的任何元素上设置内容描述,则在检测到触摸事件之前不会(自动)读取它(我希望 TalkBack 会自动执行它,就像在活动布局)

为了得到我期望的结果,我在片段类中这样做:

到目前为止,这还没有成功,将可访问性设置为内容更改也是如此。

有没有人遇到过类似的问题?