活动的可访问兼容型应用给程序员带来使用软件的新工具
2007-03-22 21:31:12 来源:WEB开发网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加载到目标进程的地址空间中。第二种情况写代码比较困难,但是效率更高一些。
- ››兼容ie6浏览器窗口四角固定背景代码
- ››兼容FF和IE的html传递参数给swf的方法
- ››兼容IE和Firefox的设为首页和收藏的Javascript代码...
- ››兼容多种浏览器“复制到剪贴板”的解决方案
- ››访问频率监测有助数据库管理
- ››访问控制大师,使用pam来支持login的访问控制
- ››活动目录系列之十四:实战SYSVOL文件夹共享丢失后...
- ››活动目录的安装:深入浅出Active Directory系列(二...
- ››活动目录的介绍:深入浅出Active Directory系列(一...
- ››兼容IE6/IE7/IE8/FireFox的CSS hack
- ››活动贴发布
- ››访问Windows 2008共享资源出错解决方法
更多精彩
赞助商链接