Я хочу отправить событие pressKey в определенное приложение, которое не является активным приложением в Windows, поэтому мне нужно использовать вызовы sendMessage/postMessage api.Как получить активное приложение ChildWindow приложения?
Однако, мне нужно знать точное дочернее окно, которое активно участвует в приложении и отправить сообщение pressKey к нему ...
Я использую GetTopWindow и GetWindow (GW_CHILD) апи вызовы, чтобы получить верхнюю ребенка окно главного окна и снова сделайте это с полученным дочерним окном, чтобы получить верхний внук и продолжайте делать это до тех пор, пока я не найду дочернее окно без родительских окон. Это отлично работает для некоторых приложений, но в некоторых случаях это не так. Иногда родительское окно является активным окном, а не одним из его дочерних окон, поэтому получение верхнего дочернего окна родителя не будет работать, потому что я буду отправлять сообщение в неправильное окно.
Единственный способ, которым я нашел это (получение обработчика фактического активного окна), - это использовать вызов api GuiThreadInfo, но он работает только в том случае, если целевое приложение является активным в Windows. Как я уже упоминал в начале, это не так, что обработчик имеет значение null.
Я могу принести приложение в начало с помощью вызова setForegroundWindow api, но я НЕ хочу этого делать. Я также пробовал атаки AttachThreadInput и GetFocus api, но опять же, они работают только в том случае, если целевое приложение является активным окном приложений IN.
Любые идеи? Спасибо
Если приложение не активен, он не имеет активного окна, так что не совсем уверен, что вы ищете, или как ты» d надежно реализовать что-то вроде этого. Что вы пытаетесь сделать? – jdigital