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 に答える