WEB开发网
开发学院软件开发VC 活动的可访问兼容型应用给程序员带来使用软件的新... 阅读

活动的可访问兼容型应用给程序员带来使用软件的新工具

 2007-03-22 21:31:12 来源:WEB开发网   
核心提示: UI元素的状态也表示成整型形式,因为一个状态可以有多个值,活动的可访问兼容型应用给程序员带来使用软件的新工具(8),例如可选的、可做焦点的,该整数是反映这些值的位的或操作结果,而此DLL加载到目标进程的地址空间中,第二种情况写代码比较困难,GetUIElementState函数将这些或数转

UI元素的状态也表示成整型形式。因为一个状态可以有多个值,例如可选的、可做焦点的,该整数是反映这些值的位的或操作结果。GetUIElementState函数将这些或数转换成相应的用逗号分割的状态字符串,用一个循环实现:

  for(dwStateBit = 1; cCount; cCount—, dwStateBit <<= 1)
  {
  •••
  }

在循环之中你可以检查从最小到最大的所有状态值的哪个状态位包含在变量varRetVal.lVal中,并用GetStateText函数返回这些状态的字符串。一般状态(varRetVal.vt == 0)的情况单独对待。

第四个函数,GetWindowClassForUIElement,获得到IAccessible 的指针,使用WindowFromAccessibleObject函数得到与该指针对应的窗口的句柄。WindowFromAccessibleObject只使用IAccessible而非IAccessible interface/child ID对的事实意味着当一个可访问的元素自己不支持IAccessible时,父亲的IAccessible表示了该元素,而该元素具有和父亲相同的类。调用Win32函数GetClassName来搜索Window类名。

监视WinEvents

监视WinEvents非常类似于使用Windows hooks的Windows消息监视。然而重要的区别是当监视WinEvents的动作被UI元素从另一个进程中启动时,你不必创建一个单独的DLL加载进程地址空间。

下面是hooking的两种选择:通过选择相应的SetWinEventHook函数的最后参数,你可以在上下文之外或者之中设置挂钩。当在上下文之外挂钩时,其它DLL是没有必要的,回调函数的代码在目标进程之外运行。当在上下文之中挂钩时,回调函数的代码在要求的其它DLL中,而此DLL加载到目标进程的地址空间中。第二种情况写代码比较困难,但是效率更高一些。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:活动 访问 兼容

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接