2

我正在通过.Net 中的UIAuomation Clients API并且必须使用 C++ 而不是 C#。这是因为SendInput函数仅在 C++ 中可用,并且似乎是将鼠标点击发送到任何应用程序的最可靠方法(与此问题相同的问题:如何在没有实现任何模式的情况下操作控件?)。

现在,由于缺少有关 msdn 的文档,我正在努力使用 UIAutomation API 的 C++ 版本。有人可以告诉如何使用CreatePropertyCondition、 UIA_NamePropertyId 和“Windows Media Player”创建 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 getWMP\n");
    return hr;
}

我总是进入这种if状态。该g_pAutomation变量工作正常,我能够很好地获得 RootElement。

一个简单的教程/示例(在 C++ 中)的链接也将非常有用。

谢谢

4

1 回答 1

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

于 2013-03-30T10:49:29.813 回答