如何用C语言检索Automation Element控件类型

ix0qys7i  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(148)

**目的:**通过纯C语言从Uiautomation元素中获取字符串形式的控件类型名称(即Button、Checkbox、Menu、MenuItem等)

下面是一个例子:

#define COBJMACROS
#include "UiAutomationClient.h"
#include "UiAutomationCore.h" 

POINT pt;
IUIAutomation *pAutomation = NULL;
IUIAutomationElement *element = NULL;
CONTROLTYPEID element_type;

GetCursorPos(&pt);
hr = IUIAutomation_ElementFromPoint(pAutomation, pt, &element);
if(SUCCEEDED(hr) && element != NULL){
   hr = IUIAutomationElement_get_CurrentControlType(element,&element_type);
   if(SUCCEEDED(hr)){
     ????    
   }
}

就我所理解的get_CurrentControlType,我得到的是控件类型的ID,但我感兴趣的是控件类型的名称。有人知道如何做到这一点吗?

mcdcgff0

mcdcgff01#

您可以使用IUIAutomationElement::而不是get_CurrentLocalizedControlType

BSTR* retVal;
element->get_CurrentLocalizedControlType(&retVal);

相关问题