Мне интересно, после всех проблем с SendInput, SendKeys, PostMessage, SendMessage, SendNotifyMessage, keybd_event и т.д. и т.д. Чтобы найти это хорошо... попытка отправить ввод с клавиатуры в другой процесс без переднего плана довольно тонкая и ненадежная.
Я попробовал метод SendInput, где я обманываю Z-порядок (чтобы сохранить текущее окно сверху) и быстро вырезал окно третьей стороны, отправлял вход и повторно просматривал мое окно. Из-за чего, в конечном счете, не удалось, а также, как-то, не знаете, почему, удалось также процитировать нажатия клавиш на моем окне, а не на переднем плане (вызывая бесконечный цикл отправки и получения между двумя окнами, пока мне не удалось закрыть процесс).
Я пробовал разные комбинации SendMessage и PostMessage. Один для вниз, один для вверх, поскольку использование как для перехода вниз, так и вверх приводит к проблемам, например, с PostMessage для обоих, в результате чего ключ дублируется в окне приема. или SendMessage для обоих, что вызвало проблемы с вводом текста, но другие функции работали нормально. SendMessage для keydown и PostMessage для keyUp работал для всех функций, но уровень надежности резко снижался, а также добавлял задержку в ключевые события. Только комбинация PostMessage для keydown и SendMessage для keyup удалось сделать что-нибудь полезное, возможно, 5-10% отказов регистрации регистрации. То же самое касается SentNotifyMessage (ведет себя в основном так же, как SendMessage, насколько это касается надежности).
Итак, по сути, я нахожусь в конце, и я хотел знать о том, как напрямую вводить крючок в целевое окно, и делать некоторые вуду, чтобы посылать ему такие нажатия, обходя очередь сообщений и т.д. Сделав это в способ, который не будет обрабатывать события глобального ключа, и влияет только на целевое окно. Единственное, что я не знаю, когда дело доходит до инъекций/перехвата и т.д. Поэтому я обращаюсь к вам, сообществу.
Что делать?