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

时间:2014-08-26 05:18:09

标签: c# winapi accessibility-api

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

在研究了OLEACC.DLL之后,发现oleacc.dll错误可能是由以下原因引起的:

  1. Windows更新可能会删除此dll 无法准确找到导致此问题的特定更新。
  2. 反病毒软件,注册表清理程序或助推器可能会损坏或删除此dll 例如; AVG,Zone Alarm Internet Security Suite安装
  3. 已损坏或删除的病毒,特洛伊木马和恶意软件感染 例如; Trojan:Win 32 / Agent E. 恶意软件:Win32 / Cnzz
  4. oleacc.dll注册表项无效或损坏
  5. Microsoft硬件故障,例如损坏了oleacc.dll文件的坏硬盘驱动器
  6. 另一个程序覆盖了所需的oleacc.dll
  7. 版本
  8. 另一个程序恶意或错误地删除了oleacc.dll文件
  9. 另一个程序卸载了oleacc.dll文件。
  10. 我的应用程序的主要缺点是,它无法知道对oleacc.dll的访问是否正常 - 因此我的应用程序运行但不会抓取,用户无法知道它是否正在抓取文本。

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

    代码:

    IAccessible acc = null;

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

    由于 普拉卡什

0 个答案:

没有答案