| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Приём и отправка оконных сообщений |
| Автор: DrBoom 31.8.2011, 10:58 |
| Суть задачи: Есть приложение с единственным окном. Есть скрытый элемент управления (исп. PictureBox), который сабклассируется. При запуске второй (и более) копии программы мы получаем хэндл скрытого элемента первой копии программы (мы его сохраняем в реестре HKLM). Получив хэндл, отправляем сообщение WM_USER or X. Запущенная копия программы, получив это сообщение отправляет соответствующий ответ и выполняет некое действие, нужное нам. Получив ответ от первой вторая (и более) копии завершаются. Для работы с UAC добавили ChangeWindowMessageFilter и ChangeWindowMessageFilterEx для Win Vista и Seven соответственно. Запускает из-под админа и простого пользователя, с включенным и выключенным UAC. Всё прекрасно работает. Теперь создаём ActiveX DLL. Этот ActiveX мы запускаем на локальном веб-узле в IIS, используя ASP-сценарий. Отправляем точно такую же мессегу в запущенное приложение (хэндл опять же получаем через реестр). И тут в упор не хочет работает. ЧЯДНТ? Как заставить отправлять\получать сообщения? Пробовал регистрировать свои мессеги (RegisterWindowMessage) и добавлять в фильтер их. Бесполезно. Что интересно, одни и те же имена мессег, зарегистрированные в приложении и в ActiveX, запускаемом в ASP, имеют разные номера. Ладно, начал передавать в ActiveX DLL зарегистрированные программой мессеги через всё тот же реестр. Отправляем их -- результат тот же, результата нет. |