私はsendMessage/postMessage APIコールを使用する必要があるので、アクティブなアプリケーションではない特定のアプリケーションにpressKeyイベントを送信します。アプリケーションのアクティブなChildWindowを取得するにはどうすればよいですか?
しかし、私はGetTopWindowとは、GetWindow(GW_CHILD)APIを使用していた
...アプリケーションでアクティブで、それにpressKeyメッセージを送信し、正確な子ウィンドウを知っておく必要がありますが、トップの子供を取得するために呼び出しますメインウインドウのウインドウを開き、得られた子ウインドウでもう一度やって、トップgrandchildWindowを取得し、子ウインドウがなくなるまでそれを続けます。これは一部のアプリケーションでは効果的ですが、場合によってはそうではありません。親ウィンドウが子ウィンドウの1つではなく、アクティブウィンドウである場合があります。親ウィンドウの子ウィンドウを取得すると、間違ったウィンドウにメッセージが送信されます。
GuiThreadInfo APIコールを使用していましたが、ターゲットアプリケーションがアクティブなWindowsの場合のみ動作します(実際のアクティブウィンドウのハンドラを取得しています)。最初に述べたように、ハンドラがnullになるわけではありません。
私はsetForegroundWindow APIコールを使用してアプリケーションをトップに持っていくことができますが、私はこれをしたくありません。私もAttachThreadInputとGetFocus APIコールを試しましたが、ターゲットアプリケーションがアクティブなアプリケーションのウィンドウである場合にのみ動作します。
アイデア?ありがとう
、それはアクティブなウィンドウを持っていないので、あなたが探してか、どのようにしているものをかなり確実ではありません」このようなものを確実に実装します。あなたは何をしようとしていますか? – jdigital