Передача сообщения в другое окно - PullRequest
0 голосов
/ 22 сентября 2011

Я хотел бы написать приложение, которое передает каждое полученное сообщение в другое окно.Например, у меня есть приложение, в котором пользователь может нажимать некоторые клавиши, перемещать мышь и т. Д., И я хочу, чтобы все эти сообщения передавались, например, в MS Paint.

Как мне это сделать?Есть идеи?Насколько я знаю, может быть проблема с отправкой нажатий клавиш в другое окно, поэтому, пожалуйста, советуйте также.

РЕДАКТИРОВАТЬ

Хорошо, возможно, я дамВы больше описания того, что я ищу.

Мои приложения отображает окно другого приложения в форме.Теперь я хотел бы управлять другим окном, используя сообщения, отправленные в форму моего приложения (например, нажатия клавиш, движения мыши и т. Д.).

Я думал о передаче всех сообщений, которые моя форма получает, окнуприложение, которое я как бы встраиваю в свое собственное.Под «внедрением» я подразумеваю отображение окна приложения в моей форме.

Может быть, есть другое решение моей проблемы.Пожалуйста, совет.

Спасибо за ваше время.

Ответы [ 3 ]

4 голосов
/ 22 сентября 2011

Некоторые сообщения (т.е. входящие сообщения) поступают через очередь сообщений, а остальные доставляются прямо в окна получателя.Поэтому то, что вы просите сделать, требует от вас выполнения всех следующих действий:

  1. Реализация цикла сообщений верхнего уровня, который извлекает сообщения из очереди и отправляет их в другое приложение.
  2. Переопределите все модальные оконные циклы для передачи всех сообщений.
  3. Замените оконную процедуру для всех окон вашего процесса на одну, которая передает все сообщения другому приложению.
  4. Найдите другие возможностидля получения сообщений, которые я не покрыл.

Я не могу себе представить, что это действительно будет решением вашей проблемы, какой бы она ни была.

1 голос
/ 22 сентября 2011

Переопределите форму DefaultHandler () и опубликуйте каждое полученное сообщение в другой форме.Если в форме есть явные обработчики сообщений или даже некоторые элементы управления, вы можете не увидеть эти сообщения в DefaultHandler ().

1 голос
/ 22 сентября 2011

Пересылка сообщений определенно возможна и проста, но, скорее всего, она не даст ожидаемого результатаВзгляните здесь .

...