问题标签 [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.
c# - 如何检测对oleacc.dll的访问是否失败
我有一个应用程序将使用 oleacc.dll 来获取其他正在运行的 Windows 应用程序文本。在我的客户端中,我发现了对 oleacc.dll 的访问被拒绝或失败,并且我的应用程序无法获取正在运行的应用程序文本的情况。我不知道为什么在我的客户端访问 oleacc.dll 被拒绝。
经过对OLEACC.DLL的研究,发现oleacc.dll错误可能是由以下原因引起的:
- Windows 更新可能会删除此 dll 无法准确找到导致此问题的特定更新。
- 防病毒软件、注册表清理器或助推器可能会损坏或删除此 dll,例如;AVG、Zone Alarm Internet Security Suite 安装
- 病毒、木马和恶意软件感染已损坏或删除它例如;木马:Win 32/Agent E 恶意软件:Win32/Cnzz
- oleacc.dll 注册表项无效或损坏
- Microsoft 硬件故障,例如损坏的硬盘驱动器损坏了 oleacc.dll 文件
- 另一个程序覆盖了所需版本的 oleacc.dll
- 另一个程序恶意或错误地删除了 oleacc.dll 文件
- 另一个程序卸载了 oleacc.dll 文件。
我的应用程序的主要缺点是,它不知道对 oleacc.dll 的访问是否正常 - 因此我的应用程序运行但不会抓取,用户无法知道它是否抓取文本。
所以,我想知道有没有办法检查对 oleacc.dll 的访问是否失败。一旦检测到,我的应用程序可以向用户发出警报并自动从我的应用程序注册 oleacc.dll(使用 regsvr32 命令)。
代码:
IAccessible acc = null;
int retval = AccessibleObjectFromWindow( hWnd, 0, IID_IAccessible.ToByteArray(), ref acc );
谢谢普拉卡什
android - AccessibilityManager.interrupt() 究竟做了什么?
正如 Android 开发者“文档”中经常发生的那样,这个函数的描述非常模糊:
请求所有无障碍服务的反馈中断。
有没有人确切地知道它的作用,它的作用是什么以及它会持续多长时间?例如,启用 TalkBack 和 Explore On Touch 后,这会打断当前正在说出的话语,还是会在活动生命周期的剩余时间内关闭服务?
另外,“请求”是什么意思?这是否意味着请求可能不被满足?如果是,在哪些情况下,以及如何检查它是否成功?
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 有点少。我愿意尝试任何事情。
java - 通过 Accessibility 服务传递数据以查看 - Android
我想在辅助功能服务中更改 EditText 内的文本。我的代码是:
而且效果很好。当用户按下 EditText 时,它会变为“TestData”。之后显示带有按钮的对话框。我想通过按下按钮来更改文本。
如果按下按钮,剪贴板会刷新,但 EditText 内的文本不会。
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 时会发生什么的任何想法?是否有任何解决方法或者我应该寻找不同的技术?
macos - 由于沙盒问题,Mac App 被拒绝
我的 Mac App 被拒绝,原因如下:
“这个版本的应用程序不仅解决了错误修复和新的 OS X 功能采用,因此它必须在 2012 年 6 月 1 日实施沙盒”
我很困惑,因为在提交的应用程序的先前版本中,我没有做任何与沙盒相关的事情并且它得到了批准。所以,不知道为什么这次被拒绝了。
当我向苹果提出问题时,他们只是不断重复上述信息。
所以,请指导我。
如果您需要更多信息来理解这个问题,请告诉我。
android - TYPE_WINDOWS_CHANGED 无障碍服务
在棒棒糖中有一个名为 TYPE_WINDOWS_CHANGED 的新可访问性事件,但是当我在我的 xml 配置文件中使用它时,我收到来自 Android Studio 的错误。是否可以仅通过代码添加它?我错过了什么吗?
android - event.getSource() 在 android 中返回 null 可访问性
我尝试使用 DashLane 之类的辅助功能服务或其他使用辅助功能服务的应用程序来填充 EditText 字段。
我正在使用以事件视图为中心的。当 EditText 获得焦点时,事件开始但getSource()
返回 null。
代码:
...而且我尝试了其他一些会出错的方法。所以这里的一个问题是为什么它返回null?
安卓清单
可访问性.xml
objective-c - 如何将辅助功能与沙盒应用程序一起使用?
OS X 有一个不错的功能,例如 Accessibility API,它允许从您的应用程序代码中控制一些系统元素和其他应用程序。但是打开沙盒后它就停止工作了。必须将应用程序提交到商店才能打开沙盒。
苹果是这么说的:
使用 App Sandbox,您可以并且应该启用您的应用程序的可访问性,如本文档中所述。但是,您不能对屏幕阅读器等辅助应用程序进行沙箱处理,也不能对控制另一个应用程序的应用程序进行沙箱处理。
但是 App Store 有一些使用 Accessibility API 的应用程序:
- Cinch – 调整窗口大小
- BetterSnapTool - 相同
- PopClip – 获取选中的文本
所以这意味着可以同时使用 Sandbox/Accessibility API/App Store,但是如何呢?
android - 如何在片段视图中激活对讲?
我目前正在将可访问性添加为我的应用程序中的一项新功能。我的目标是用户将使用Android 集成的TalkBack服务对其进行导航。
一切都运行良好,因为我正在我的活动布局内的元素上设置内容描述,即
这样,每次显示我的活动时,TalkBack 都会读取内容描述值。
仅使用一项在其上推送多个片段的活动,我并没有取得同样的成功。因此,如果我尝试在片段布局内的任何元素上设置内容描述,则在检测到触摸事件之前不会(自动)读取它(我希望 TalkBack 会自动执行它,就像在活动布局)
为了得到我期望的结果,我在片段类中这样做:
到目前为止,这还没有成功,将可访问性设置为内容更改也是如此。
有没有人遇到过类似的问题?