My app1 PostMessage WM_LBUTTONDOWN и WM_LBUTTONUP к app2 (стороннему), который находится в другом процессе.Как обеспечить, чтобы PostMessage обрабатывался другим приложением?
Как убедиться, что сообщение было обработано app2 в приложении 1, логика в приложении 1 зависит от результата этих сообщений после PostMessage.
Вот псевдо-код для app1
PostMessage(app2Handle, WM_LBUTTON_DOWN, 0, lParam);
PostMessage(app2Handle, WM_LBUTTON_UP, 0, lParam);
// How to ensure above messages has been handled by app2 here?
Получить другое приложение, чтобы уведомить вас, когда оно обработало сообщения. Почему вы все равно не используете автоматизацию? –
UI Automation не очень надежна для неактивного окна. т. е. нажатие элемента TreeView требует, чтобы окна были активны. Вот почему я перешел на win32 API. – user1633272
Это полная чепуха. UI Automation ** является ** надежным, независимо от того, активно ли целевое окно или нет. Во всяком случае, прочитайте [Повторный ввод не совпадает с его обработкой] (https://blogs.msdn.microsoft.com/oldnewthing/20121206-00/?p=5903) и [Вы не можете имитировать ввод с помощью клавиатуры с помощью PostMessage] (https://blogs.msdn.microsoft.com/oldnewthing/20050530-11/?p=35513/), чтобы понять, почему это не может работать. – IInspectable