MS Active Accessibility 接口技术编程尝试
2006-07-20 11:39:00 来源:WEB开发网核心提示: 在 IAccessible 接口上执行动作有了表示一个可访问的 UI 元素的 IAccessible 接口/子ID对,你也有了搜索该元素一个名字(get_accName)、角色(get_accRole)、类和状态(get_accState)的方法,MS Active Accessibili
在 IAccessible 接口上执行动作
有了表示一个可访问的 UI 元素的 IAccessible 接口/子ID对,你也有了搜索该元素一个名字(get_accName)、角色(get_accRole)、类和状态(get_accState)的方法。让我们看看你还可以干什么!get_accDescription 能取得UI元素的描述,get_accValue 能取得一个值。
最重要的函数之一是 accDoDefaultAction。每个可访问的UI元素都有一个缺省定义的动作。例如,一个按钮的缺省动作是"按下这个按钮",一个检查框的缺省动作是"不选"。为了确定一个元素的缺省动作,请参考 Active Accessibility 文档或者调用 get_accDefaultAction。
如果我想起动注册表编辑器,该怎么办呢?如果是我们手动做的话,无非是在文本输入框输入"regedit",然后按确定按钮,就这么简单。下面我们来看看用 Active Accessibility 是怎么来实现的。
//在文本输入框输入"regedit"
if(1 == FindChild (paccMainWindow, "打开(O):",
"可编辑文字",
"Edit",
&paccControl,
&varControl))
{
//在这里修改文本编辑框的值
hr = paccControl->put_accValue(varControl,
CComBSTR("regedit"));
paccControl->Release();
VariantClear(&varControl);
}
// 找到确定按钮,并执行默认动作。
if(1 == FindChild (paccMainWindow,
"确定",
"按下按钮",
"Button",
&paccControl,
&varControl))
{
//这里执行按钮的默认动作,即"按下这个按钮"
hr = paccControl->accDoDefaultAction(varControl);
paccControl->Release();
VariantClear(&varControl);
}
现在,你会发现已经成功启动了注册表编辑器!!
Tags:MS Active Accessibility
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接