2017-07-16 2 views
1

私はいくつかの自動化のためにMSAAを使用しています。コンテキストメニューのウィンドウハンドルを取得しますか?

他のすべてのMSAA要素とは異なり、(ウィンドウの数をaccChildCountで取得することはできますが)デスクトップのウィンドウの子を反復することはできません。

私はコンテキストメニューのMSAAオブジェクトを取得する別の方法を探しています。私の最新の考え方は、ContextメニューのHWNDを取得できたら、AccessibleObjectFromWindowを使ってMSAAオブジェクトを取得することです。難しい点は、コンテキストメニューのHWNDをどうやって取得するのですか?

現在、私の唯一の回避策は、HWNDを取得するためにUIAutomationを使用していますが、これはかなり無駄かもしれないと感じています...コンテキストメニューのハンドルを返すことができる他のWindows32関数はありますか?

+0

コンテキストメニューが開いていることをどのように知っていますか? – conio

+0

@conio私はそれを呼び出したので。コンテキストメニューのHWNDを取得する方法がある場合は、そのメニューを使用して開いているかどうかを調べることもできます。 – Sancarn

答えて

2

MSDNではFindWindowEx(NULL, NULL, MAKEINTATOM(0x8000), NULL);を使用してメニューウィンドウを見つけることができます。

+0

面白い!私はこれを試してみよう!ありがとう! – Sancarn

関連する問題