活动的可访问兼容型应用给程序员带来使用软件的新工具
2007-03-22 21:31:12 来源:WEB开发网这样,如果一个子不支持自己的Iaccessible接口,而它的父亲支持,那么这个子就可以Iaccessible接口/子ID对来表示。通常,支持Iaccessible接口的UI父亲元素也由这样的对来表示,其中子ID定义为CHILDID_SELF,且其值为0。
记住,子ID总是相对于Iaccessible接口的。例如,一个可访问的元素可以有一个非CHILDID_SELF的子ID,相对于它的父亲的Iaccessible接口(该接口的子ID将是CHILDID_SELF,相对于它自身的Iaccessible接口,如果支持的话)。
如果你使用Active Accessibility功能,你应该总能提供Iaccessible接口/子ID对与一个可访问的UI元素交互。几乎所有的Active Accessibility功能和Iaccessible方法需要这两个参数,因此不要忘记提供正确的子ID。对于支持Iaccessible的UI元素来说,这个ID将是CHILDID_SELF。
如果一个子不支持Iaccessible,而父亲支持Ienum类型的变量接口,子ID就能通过叫做Next的标准Ienum变量接口方法检索。如果父亲不支持Ienum类型的变量接口,子id只是它的序号而已。应该指出,如果一个子支持Iaccessible接口,Next能够返回一个子的ID或者与这个子的Iaccessible接口相关的一个Idispatch。Next的实现取决于供应商,对于不同的UI元素可以不同。
一个UI元素是可访问的事实并不必然意味着它有自己的Iaccessible接口。如果一个UI元素支持它自己的Iaccessible接口,子的Iaccessible接口/CHILDID_SELF对用来访问它。如果一个UI元素不支持它自己的Iaccessible接口,表示该元素的对将是Iaccessible父接口/子ID对,其中子ID不等于CHILDID_SELF,并由程序决定。你应该总是调用get_accChild来检查一个UI元素是否支持它自己的Iaccessible接口。
开发测试软件
为了编写测试程序,你必须获得UI元素信息,使用WinEvent hooks来监视事件,使用Iaccessible接口指针来访问控件,在控件上执行动作并且模拟键盘和鼠标输入。这些和其它问题我将在下一节中用一个例程来解决。例程模拟了一个用户与Find: All Files对话框的交互过程,它使用了标准Win32 FindWindow功能来检查Find: All Files对话框是否存在。如果不存在,程序就监控WinEvents,等待其出现。一当对话框出现,程序获得指向与对话框相对应的IAccessible接口的指针,跳到Containing text:编辑框和Named:组合列表框,分别进行设置,按下Find Now按钮。最后,模拟Alt-F4的键盘输入关闭对话框。注意在Windows 2000下,对应的窗口及其域与Windows NT 4.0 和Windows 9x下有所不同。为了解决这个问题,例程检查当前的操作系统,如果必要就初始化bIsWin2K变量以允许将Windows2000单独对待。
- ››兼容ie6浏览器窗口四角固定背景代码
- ››兼容FF和IE的html传递参数给swf的方法
- ››兼容IE和Firefox的设为首页和收藏的Javascript代码...
- ››兼容多种浏览器“复制到剪贴板”的解决方案
- ››访问频率监测有助数据库管理
- ››访问控制大师,使用pam来支持login的访问控制
- ››活动目录系列之十四:实战SYSVOL文件夹共享丢失后...
- ››活动目录的安装:深入浅出Active Directory系列(二...
- ››活动目录的介绍:深入浅出Active Directory系列(一...
- ››兼容IE6/IE7/IE8/FireFox的CSS hack
- ››活动贴发布
- ››访问Windows 2008共享资源出错解决方法
更多精彩
赞助商链接