microsoft-ui-automation - 在 C++ 中,.NET UIAutomation简单示例

  显示原文与译文双语对照的内容
0 0

我正在使用 UIAuomation客户端 API. NET,而必须使用 C++ 而不是 C# 。 因为 SendInput 函数仅在 C++ 中可用,所以它是向任何应用程序发送鼠标点击的最可靠方法( 与这里问题相同: 如何在没有实现 Pattern的情况下操作控件? ) 。

现在我正在与 C++ 版本的UIAutomation API争用,因为在msdn上缺少文档。 有人可以告诉我们如何使用 CreatePropertyCondition,UIA_NamePropertyId和"。Windows 媒体播放器"创建一个 PropertyCondition 。


char *name = new char[30];
strcpy(name,"Windows Media Player");
VARIANT vt;
vt.vt = VT_CARRAY;//This is probably wrong
vt.pcVal = name;
hr = g_pAutomation->CreatePropertyCondition(UIA_NamePropertyId, vt, &condition);
if(!SUCCEEDED(hr)){
 printf("Cannot createpropertycondition in getWMPn");
 return hr;
}

我总是在 if 条件下。 g_pAutomation 变量正常工作,我能够获得 RootElement 。

另外,指向简单教程/示例( 在 C++ 中)的链接将非常有用。

谢谢

时间: 原作者:

0 0

你应该尝试:


VARIANT vt;
vt.vt = VT_BSTR;
vt.bstrVal = SysAllocString(windowName);

我很难浏览 MSDN,但我找到了一个例子: http://msdn.microsoft.com/en-us/library/windows/desktop/ff625913(v=vs.85).aspx

...