1

我有一个应用程序将使用 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 );

谢谢普拉卡什

4

0 回答 0