如何解决使用纯C检索UI元素的活动辅助功能名称
目标:使用纯C检索UI元素的Microsoft活动可访问性名称
到目前为止,我的代码:
IUIAutomationLegacyIAccessiblePattern *legacy = NULL;
BSTR element_aaname = NULL;
CoInitialize(NULL);
EXTERN_C const CLSID CLSID_CUIAutomation;
EXTERN_C const IID IID_IUIAutomation;
HRESULT hr = CoCreateInstance(&CLSID_CUIAutomation,NULL,CLSCTX_INPROC_SERVER,&IID_IUIAutomation,(void**)&pAutomation);
if(SUCCEEDED(hr)){
hr = IUIAutomationLegacyIAccessiblePattern_get_CurrentName(legacy,&element_aaname);
if(SUCCEEDED(hr)){
}
IUnknown_Release(legacy);
}
CoUninitialize();
问题:我没有任何价值,我想知道如何分配element_aaname="Not found"
来验证函数是否起作用。非常感谢您的帮助。
解决方法
在检查了相应的文档后,我找到了方法。我必须检索并传递Ui元素,这样我才能检索LegacyIAccessible.Name:
IUIAutomation *pAutomation = NULL;
IUIAutomationElement *element = NULL;
BSTR element_aaname = NULL;
CoInitialize(NULL);
EXTERN_C const CLSID CLSID_CUIAutomation;
EXTERN_C const IID IID_IUIAutomation;
HRESULT hr = CoCreateInstance(&CLSID_CUIAutomation,NULL,CLSCTX_INPROC_SERVER,&IID_IUIAutomation,(void**)&pAutomation);
if(SUCCEEDED(hr)){
GetCursorPos(&pt);
hr = IUIAutomation_ElementFromPoint(pAutomation,pt,&element);
if(SUCCEEDED(hr) && element != NULL){
hr = IUIAutomationLegacyIAccessiblePattern_get_CurrentName(element,&element_aaname);
if(SUCCEEDED(hr)){
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。